diff --git a/app/helpers/markup_helper.rb b/app/helpers/markup_helper.rb
index e2524938e10..e1e756c2f4c 100644
--- a/app/helpers/markup_helper.rb
+++ b/app/helpers/markup_helper.rb
@@ -51,12 +51,15 @@ module MarkupHelper
text = fragment.children[0].text
fragment.children[0].replace(link_to(text, url, html_options))
else
- # Traverse the fragment's first generation of children looking for pure
- # text, wrapping anything found in the requested link
+ # Traverse the fragment's first generation of children looking for
+ # either pure text or emojis, wrapping anything found in the
+ # requested link
fragment.children.each do |node|
- next unless node.text?
-
- node.replace(link_to(node.text, url, html_options))
+ if node.text?
+ node.replace(link_to(node.text, url, html_options))
+ elsif node.name == 'gl-emoji'
+ node.replace(link_to(node.to_html.html_safe, url, html_options))
+ end
end
end
diff --git a/changelogs/unreleased/harishsr-emoticon-commit-links.yml b/changelogs/unreleased/harishsr-emoticon-commit-links.yml
new file mode 100644
index 00000000000..0ad9dd1e101
--- /dev/null
+++ b/changelogs/unreleased/harishsr-emoticon-commit-links.yml
@@ -0,0 +1,5 @@
+---
+title: Allow emojis to be linkable
+merge_request: 18014
+author:
+type: fixed
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql
index 231302794c5..cbc974a69cf 100644
--- a/doc/api/graphql/reference/gitlab_schema.graphql
+++ b/doc/api/graphql/reference/gitlab_schema.graphql
@@ -116,23 +116,54 @@ type BlobEdge {
}
type Commit {
+ """
+ Author of the commit
+ """
author: User
+
+ """
+ Timestamp of when the commit was authored
+ """
authoredDate: Time
+
+ """
+ Description of the commit message
+ """
description: String
+
+ """
+ ID (global ID) of the commit
+ """
id: ID!
"""
- Latest pipeline for this commit
+ Latest pipeline of the commit
"""
latestPipeline: Pipeline
+
+ """
+ Raw commit message
+ """
message: String
+
+ """
+ SHA1 ID of the commit
+ """
sha: String!
"""
- Rendered html for the commit signature
+ Rendered HTML of the commit signature
"""
signatureHtml: String
+
+ """
+ Title of the commit message
+ """
title: String
+
+ """
+ Web URL of the commit
+ """
webUrl: String!
}
@@ -181,6 +212,71 @@ type CreateDiffNotePayload {
note: Note
}
+"""
+Autogenerated input type of CreateEpic
+"""
+input CreateEpicInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The description of the epic
+ """
+ description: String
+
+ """
+ The end date of the epic
+ """
+ dueDateFixed: String
+
+ """
+ Indicates end date should be sourced from due_date_fixed field not the issue milestones
+ """
+ dueDateIsFixed: Boolean
+
+ """
+ The group the epic to mutate is in
+ """
+ groupPath: ID!
+
+ """
+ The start date of the epic
+ """
+ startDateFixed: String
+
+ """
+ Indicates start date should be sourced from start_date_fixed field not the issue milestones
+ """
+ startDateIsFixed: Boolean
+
+ """
+ The title of the epic
+ """
+ title: String
+}
+
+"""
+Autogenerated return type of CreateEpic
+"""
+type CreateEpicPayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The created epic
+ """
+ epic: Epic
+
+ """
+ Reasons why the mutation failed.
+ """
+ errors: [String!]!
+}
+
"""
Autogenerated input type of CreateImageDiffNote
"""
@@ -392,6 +488,11 @@ type DesignCollection {
"""
first: Int
+ """
+ The list of IDs of designs.
+ """
+ ids: [ID!]
+
"""
Returns the last _n_ elements from the list.
"""
@@ -1184,6 +1285,9 @@ type EpicEdge {
}
type EpicIssue implements Noteable {
+ """
+ Assignees of the issue
+ """
assignees(
"""
Returns the elements in the list that come after the specified cursor.
@@ -1205,10 +1309,30 @@ type EpicIssue implements Noteable {
"""
last: Int
): UserConnection
+
+ """
+ User that created the issue
+ """
author: User!
+
+ """
+ Timestamp of when the issue was closed
+ """
closedAt: Time
+
+ """
+ Indicates the issue is confidential
+ """
confidential: Boolean!
+
+ """
+ Timestamp of when the issue was created
+ """
createdAt: Time!
+
+ """
+ Description of the issue
+ """
description: String
"""
@@ -1217,6 +1341,10 @@ type EpicIssue implements Noteable {
descriptionHtml: String
designCollection: DesignCollection
designs: DesignCollection @deprecated(reason: "use design_collection")
+
+ """
+ Indicates discussion is locked on the issue
+ """
discussionLocked: Boolean!
"""
@@ -1243,7 +1371,15 @@ type EpicIssue implements Noteable {
"""
last: Int
): DiscussionConnection!
+
+ """
+ Number of downvotes the issue has received
+ """
downvotes: Int!
+
+ """
+ Due date of the issue
+ """
dueDate: Time
"""
@@ -1256,7 +1392,15 @@ type EpicIssue implements Noteable {
The global id of the epic-issue relation
"""
id: ID
+
+ """
+ Internal ID of the issue
+ """
iid: ID!
+
+ """
+ Labels of the issue
+ """
labels(
"""
Returns the elements in the list that come after the specified cursor.
@@ -1278,6 +1422,10 @@ type EpicIssue implements Noteable {
"""
last: Int
): LabelConnection
+
+ """
+ Milestone of the issue
+ """
milestone: Milestone
"""
@@ -1306,7 +1454,7 @@ type EpicIssue implements Noteable {
): NoteConnection!
"""
- List of participants for the issue
+ List of participants in the issue
"""
participants(
"""
@@ -1329,16 +1477,41 @@ type EpicIssue implements Noteable {
"""
last: Int
): UserConnection
- reference(full: Boolean = false): String!
+
+ """
+ Internal reference of the issue. Returned in shortened format by default
+ """
+ reference(
+ """
+ Boolean option specifying whether the reference should be returned in full
+ """
+ full: Boolean = false
+ ): String!
relationPath: String
+
+ """
+ Relative position of the issue (used for positioning in epic tree and issue boards)
+ """
relativePosition: Int
+
+ """
+ State of the issue
+ """
state: IssueState!
+
+ """
+ Task completion status of the issue
+ """
taskCompletionStatus: TaskCompletionStatus!
"""
- The time estimate on the issue
+ Time estimate of the issue
"""
timeEstimate: Int!
+
+ """
+ Title of the issue
+ """
title: String!
"""
@@ -1350,15 +1523,35 @@ type EpicIssue implements Noteable {
Total time reported as spent on the issue
"""
totalTimeSpent: Int!
+
+ """
+ Timestamp of when the issue was last updated
+ """
updatedAt: Time!
+
+ """
+ Number of upvotes the issue has received
+ """
upvotes: Int!
+
+ """
+ Number of user notes of the issue
+ """
userNotesCount: Int!
"""
Permissions for the current user on the resource
"""
userPermissions: IssuePermissions!
+
+ """
+ Web path of the issue
+ """
webPath: String!
+
+ """
+ Web URL of the issue
+ """
webUrl: String!
weight: Int
}
@@ -1443,6 +1636,51 @@ type EpicPermissions {
updateEpic: Boolean!
}
+"""
+Autogenerated input type of EpicSetSubscription
+"""
+input EpicSetSubscriptionInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The group the epic to (un)subscribe is in
+ """
+ groupPath: ID!
+
+ """
+ The iid of the epic to (un)subscribe
+ """
+ iid: ID!
+
+ """
+ The desired state of the subscription
+ """
+ subscribedState: Boolean!
+}
+
+"""
+Autogenerated return type of EpicSetSubscription
+"""
+type EpicSetSubscriptionPayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The epic after mutation
+ """
+ epic: Epic
+
+ """
+ Reasons why the mutation failed.
+ """
+ errors: [String!]!
+}
+
"""
Roadmap sort values
"""
@@ -1545,6 +1783,9 @@ type EpicTreeReorderPayload {
}
type ExtendedIssue implements Noteable {
+ """
+ Assignees of the issue
+ """
assignees(
"""
Returns the elements in the list that come after the specified cursor.
@@ -1566,10 +1807,30 @@ type ExtendedIssue implements Noteable {
"""
last: Int
): UserConnection
+
+ """
+ User that created the issue
+ """
author: User!
+
+ """
+ Timestamp of when the issue was closed
+ """
closedAt: Time
+
+ """
+ Indicates the issue is confidential
+ """
confidential: Boolean!
+
+ """
+ Timestamp of when the issue was created
+ """
createdAt: Time!
+
+ """
+ Description of the issue
+ """
description: String
"""
@@ -1578,6 +1839,10 @@ type ExtendedIssue implements Noteable {
descriptionHtml: String
designCollection: DesignCollection
designs: DesignCollection @deprecated(reason: "use design_collection")
+
+ """
+ Indicates discussion is locked on the issue
+ """
discussionLocked: Boolean!
"""
@@ -1604,14 +1869,30 @@ type ExtendedIssue implements Noteable {
"""
last: Int
): DiscussionConnection!
+
+ """
+ Number of downvotes the issue has received
+ """
downvotes: Int!
+
+ """
+ Due date of the issue
+ """
dueDate: Time
"""
The epic to which issue belongs
"""
epic: Epic
+
+ """
+ Internal ID of the issue
+ """
iid: ID!
+
+ """
+ Labels of the issue
+ """
labels(
"""
Returns the elements in the list that come after the specified cursor.
@@ -1633,6 +1914,10 @@ type ExtendedIssue implements Noteable {
"""
last: Int
): LabelConnection
+
+ """
+ Milestone of the issue
+ """
milestone: Milestone
"""
@@ -1661,7 +1946,7 @@ type ExtendedIssue implements Noteable {
): NoteConnection!
"""
- List of participants for the issue
+ List of participants in the issue
"""
participants(
"""
@@ -1684,20 +1969,45 @@ type ExtendedIssue implements Noteable {
"""
last: Int
): UserConnection
- reference(full: Boolean = false): String!
+
+ """
+ Internal reference of the issue. Returned in shortened format by default
+ """
+ reference(
+ """
+ Boolean option specifying whether the reference should be returned in full
+ """
+ full: Boolean = false
+ ): String!
+
+ """
+ Relative position of the issue (used for positioning in epic tree and issue boards)
+ """
relativePosition: Int
+
+ """
+ State of the issue
+ """
state: IssueState!
"""
Boolean flag for whether the currently logged in user is subscribed to this issue
"""
subscribed: Boolean!
+
+ """
+ Task completion status of the issue
+ """
taskCompletionStatus: TaskCompletionStatus!
"""
- The time estimate on the issue
+ Time estimate of the issue
"""
timeEstimate: Int!
+
+ """
+ Title of the issue
+ """
title: String!
"""
@@ -1709,21 +2019,48 @@ type ExtendedIssue implements Noteable {
Total time reported as spent on the issue
"""
totalTimeSpent: Int!
+
+ """
+ Timestamp of when the issue was last updated
+ """
updatedAt: Time!
+
+ """
+ Number of upvotes the issue has received
+ """
upvotes: Int!
+
+ """
+ Number of user notes of the issue
+ """
userNotesCount: Int!
"""
Permissions for the current user on the resource
"""
userPermissions: IssuePermissions!
+
+ """
+ Web path of the issue
+ """
webPath: String!
+
+ """
+ Web URL of the issue
+ """
webUrl: String!
weight: Int
}
type Group {
+ """
+ Avatar URL of the group
+ """
avatarUrl: String
+
+ """
+ Description of the namespace
+ """
description: String
"""
@@ -1847,13 +2184,45 @@ type Group {
state: EpicState
): EpicConnection
epicsEnabled: Boolean
+
+ """
+ Full name of the namespace
+ """
fullName: String!
+
+ """
+ Full path of the namespace
+ """
fullPath: ID!
+
+ """
+ ID of the namespace
+ """
id: ID!
+
+ """
+ Indicates if Large File Storage (LFS) is enabled for namespace
+ """
lfsEnabled: Boolean
+
+ """
+ Name of the namespace
+ """
name: String!
+
+ """
+ Parent group
+ """
parent: Group
+
+ """
+ Path of the namespace
+ """
path: String!
+
+ """
+ Projects within this namespace
+ """
projects(
"""
Returns the elements in the list that come after the specified cursor.
@@ -1880,10 +2249,14 @@ type Group {
"""
last: Int
): ProjectConnection!
+
+ """
+ Indicates if users can request access to namespace
+ """
requestAccessEnabled: Boolean
"""
- The aggregated storage statistics. Only available for root namespaces
+ Aggregated storage statistics of the namespace. Only available for root namespaces
"""
rootStorageStatistics: RootStorageStatistics
@@ -1891,7 +2264,15 @@ type Group {
Permissions for the current user on the resource
"""
userPermissions: GroupPermissions!
+
+ """
+ Visibility of the namespace
+ """
visibility: String
+
+ """
+ Web URL of the group
+ """
webUrl: String!
}
@@ -1912,6 +2293,9 @@ enum IssuableState {
}
type Issue implements Noteable {
+ """
+ Assignees of the issue
+ """
assignees(
"""
Returns the elements in the list that come after the specified cursor.
@@ -1933,10 +2317,30 @@ type Issue implements Noteable {
"""
last: Int
): UserConnection
+
+ """
+ User that created the issue
+ """
author: User!
+
+ """
+ Timestamp of when the issue was closed
+ """
closedAt: Time
+
+ """
+ Indicates the issue is confidential
+ """
confidential: Boolean!
+
+ """
+ Timestamp of when the issue was created
+ """
createdAt: Time!
+
+ """
+ Description of the issue
+ """
description: String
"""
@@ -1945,6 +2349,10 @@ type Issue implements Noteable {
descriptionHtml: String
designCollection: DesignCollection
designs: DesignCollection @deprecated(reason: "use design_collection")
+
+ """
+ Indicates discussion is locked on the issue
+ """
discussionLocked: Boolean!
"""
@@ -1971,14 +2379,30 @@ type Issue implements Noteable {
"""
last: Int
): DiscussionConnection!
+
+ """
+ Number of downvotes the issue has received
+ """
downvotes: Int!
+
+ """
+ Due date of the issue
+ """
dueDate: Time
"""
The epic to which issue belongs
"""
epic: Epic
+
+ """
+ Internal ID of the issue
+ """
iid: ID!
+
+ """
+ Labels of the issue
+ """
labels(
"""
Returns the elements in the list that come after the specified cursor.
@@ -2000,6 +2424,10 @@ type Issue implements Noteable {
"""
last: Int
): LabelConnection
+
+ """
+ Milestone of the issue
+ """
milestone: Milestone
"""
@@ -2028,7 +2456,7 @@ type Issue implements Noteable {
): NoteConnection!
"""
- List of participants for the issue
+ List of participants in the issue
"""
participants(
"""
@@ -2051,15 +2479,40 @@ type Issue implements Noteable {
"""
last: Int
): UserConnection
- reference(full: Boolean = false): String!
+
+ """
+ Internal reference of the issue. Returned in shortened format by default
+ """
+ reference(
+ """
+ Boolean option specifying whether the reference should be returned in full
+ """
+ full: Boolean = false
+ ): String!
+
+ """
+ Relative position of the issue (used for positioning in epic tree and issue boards)
+ """
relativePosition: Int
+
+ """
+ State of the issue
+ """
state: IssueState!
+
+ """
+ Task completion status of the issue
+ """
taskCompletionStatus: TaskCompletionStatus!
"""
- The time estimate on the issue
+ Time estimate of the issue
"""
timeEstimate: Int!
+
+ """
+ Title of the issue
+ """
title: String!
"""
@@ -2071,15 +2524,35 @@ type Issue implements Noteable {
Total time reported as spent on the issue
"""
totalTimeSpent: Int!
+
+ """
+ Timestamp of when the issue was last updated
+ """
updatedAt: Time!
+
+ """
+ Number of upvotes the issue has received
+ """
upvotes: Int!
+
+ """
+ Number of user notes of the issue
+ """
userNotesCount: Int!
"""
Permissions for the current user on the resource
"""
userPermissions: IssuePermissions!
+
+ """
+ Web path of the issue
+ """
webPath: String!
+
+ """
+ Web URL of the issue
+ """
webUrl: String!
weight: Int
}
@@ -2199,14 +2672,29 @@ enum IssueState {
}
type Label {
+ """
+ Background color of the label
+ """
color: String!
+
+ """
+ Description of the label (markdown rendered as HTML for caching)
+ """
description: String
"""
The GitLab Flavored Markdown rendering of `description`
"""
descriptionHtml: String
+
+ """
+ Text color of the label
+ """
textColor: String!
+
+ """
+ Content of the label
+ """
title: String!
}
@@ -2246,10 +2734,13 @@ type LabelEdge {
}
type MergeRequest implements Noteable {
+ """
+ Indicates if members of the target project can push to the fork
+ """
allowCollaboration: Boolean
"""
- The list of assignees for the merge request
+ Assignees of the merge request
"""
assignees(
"""
@@ -2272,19 +2763,39 @@ type MergeRequest implements Noteable {
"""
last: Int
): UserConnection
+
+ """
+ Timestamp of when the merge request was created
+ """
createdAt: Time!
+
+ """
+ Default merge commit message of the merge request
+ """
defaultMergeCommitMessage: String
+
+ """
+ Description of the merge request (markdown rendered as HTML for caching)
+ """
description: String
"""
The GitLab Flavored Markdown rendering of `description`
"""
descriptionHtml: String
+
+ """
+ Diff head SHA of the merge request
+ """
diffHeadSha: String
+
+ """
+ References of the base SHA, the head SHA, and the start SHA for this merge request
+ """
diffRefs: DiffRefs
"""
- Boolean flag determining if comments on the merge request are locked to members only
+ Indicates if comments on the merge request are locked to members only
"""
discussionLocked: Boolean!
@@ -2312,15 +2823,39 @@ type MergeRequest implements Noteable {
"""
last: Int
): DiscussionConnection!
+
+ """
+ Number of downvotes for the merge request
+ """
downvotes: Int!
+
+ """
+ Indicates if the project settings will lead to source branch deletion after merge
+ """
forceRemoveSourceBranch: Boolean
+
+ """
+ The pipeline running on the branch HEAD of the merge request
+ """
headPipeline: Pipeline
+
+ """
+ ID of the merge request
+ """
id: ID!
+
+ """
+ Internal ID of the merge request
+ """
iid: String!
+
+ """
+ Commit SHA of the merge request if merge is in progress
+ """
inProgressMergeCommitSha: String
"""
- The list of labels on the merge request
+ Labels of the merge request
"""
labels(
"""
@@ -2343,16 +2878,44 @@ type MergeRequest implements Noteable {
"""
last: Int
): LabelConnection
+
+ """
+ Deprecated - renamed to defaultMergeCommitMessage
+ """
mergeCommitMessage: String @deprecated(reason: "Renamed to defaultMergeCommitMessage")
+
+ """
+ SHA of the merge request commit (set once merged)
+ """
mergeCommitSha: String
+
+ """
+ Error message due to a merge error
+ """
mergeError: String
+
+ """
+ Indicates if a merge is currently occurring
+ """
mergeOngoing: Boolean!
+
+ """
+ Status of the merge request
+ """
mergeStatus: String
+
+ """
+ Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS)
+ """
mergeWhenPipelineSucceeds: Boolean
+
+ """
+ Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged
+ """
mergeableDiscussionsState: Boolean
"""
- The milestone this merge request is linked to
+ The milestone of the merge request
"""
milestone: Milestone
@@ -2382,7 +2945,7 @@ type MergeRequest implements Noteable {
): NoteConnection!
"""
- The list of participants on the merge request
+ Participants in the merge request
"""
participants(
"""
@@ -2405,6 +2968,10 @@ type MergeRequest implements Noteable {
"""
last: Int
): UserConnection
+
+ """
+ Pipelines for the merge request
+ """
pipelines(
"""
Returns the elements in the list that come after the specified cursor.
@@ -2441,13 +3008,29 @@ type MergeRequest implements Noteable {
"""
status: PipelineStatusEnum
): PipelineConnection!
+
+ """
+ Alias for target_project
+ """
project: Project!
+
+ """
+ ID of the merge request project
+ """
projectId: Int!
+
+ """
+ Rebase commit SHA of the merge request
+ """
rebaseCommitSha: String
+
+ """
+ Indicates if there is a rebase currently in progress for the merge request
+ """
rebaseInProgress: Boolean!
"""
- Internal merge request reference. Returned in shortened format by default
+ Internal reference of the merge request. Returned in shortened format by default
"""
reference(
"""
@@ -2455,27 +3038,75 @@ type MergeRequest implements Noteable {
"""
full: Boolean = false
): String!
+
+ """
+ Indicates if the merge request will be rebased
+ """
shouldBeRebased: Boolean!
+
+ """
+ Indicates if the source branch of the merge request will be deleted after merge
+ """
shouldRemoveSourceBranch: Boolean
+
+ """
+ Source branch of the merge request
+ """
sourceBranch: String!
+
+ """
+ Indicates if the source branch of the merge request exists
+ """
sourceBranchExists: Boolean!
+
+ """
+ Source project of the merge request
+ """
sourceProject: Project
+
+ """
+ ID of the merge request source project
+ """
sourceProjectId: Int
+
+ """
+ State of the merge request
+ """
state: MergeRequestState!
"""
- Boolean flag for whether the currently logged in user is subscribed to this MR
+ Indicates if the currently logged in user is subscribed to this merge request
"""
subscribed: Boolean!
+
+ """
+ Target branch of the merge request
+ """
targetBranch: String!
+
+ """
+ Target project of the merge request
+ """
targetProject: Project!
+
+ """
+ ID of the merge request target project
+ """
targetProjectId: Int!
+
+ """
+ Completion status of tasks
+ """
taskCompletionStatus: TaskCompletionStatus!
"""
- The time estimate for the merge request
+ Time estimate of the merge request
"""
timeEstimate: Int!
+
+ """
+ Title of the merge request
+ """
title: String!
"""
@@ -2487,15 +3118,35 @@ type MergeRequest implements Noteable {
Total time reported as spent on the merge request
"""
totalTimeSpent: Int!
+
+ """
+ Timestamp of when the merge request was last updated
+ """
updatedAt: Time!
+
+ """
+ Number of upvotes for the merge request
+ """
upvotes: Int!
+
+ """
+ User notes count of the merge request
+ """
userNotesCount: Int
"""
Permissions for the current user on the resource
"""
userPermissions: MergeRequestPermissions!
+
+ """
+ Web URL of the merge request
+ """
webUrl: String
+
+ """
+ Indicates if the merge request is a work in progress (WIP)
+ """
workInProgress: Boolean!
}
@@ -2635,17 +3286,51 @@ enum MergeRequestState {
}
type Metadata {
+ """
+ Revision
+ """
revision: String!
+
+ """
+ Version
+ """
version: String!
}
type Milestone {
+ """
+ Timestamp of milestone creation
+ """
createdAt: Time!
+
+ """
+ Description of the milestone
+ """
description: String
+
+ """
+ Timestamp of the milestone due date
+ """
dueDate: Time
+
+ """
+ Timestamp of the milestone start date
+ """
startDate: Time
+
+ """
+ State of the milestone
+ """
state: String!
+
+ """
+ Title of the milestone
+ """
title: String!
+
+ """
+ Timestamp of last milestone update
+ """
updatedAt: Time!
}
@@ -2667,11 +3352,13 @@ enum MoveType {
type Mutation {
addAwardEmoji(input: AddAwardEmojiInput!): AddAwardEmojiPayload
createDiffNote(input: CreateDiffNoteInput!): CreateDiffNotePayload
+ createEpic(input: CreateEpicInput!): CreateEpicPayload
createImageDiffNote(input: CreateImageDiffNoteInput!): CreateImageDiffNotePayload
createNote(input: CreateNoteInput!): CreateNotePayload
designManagementDelete(input: DesignManagementDeleteInput!): DesignManagementDeletePayload
designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload
destroyNote(input: DestroyNoteInput!): DestroyNotePayload
+ epicSetSubscription(input: EpicSetSubscriptionInput!): EpicSetSubscriptionPayload
epicTreeReorder(input: EpicTreeReorderInput!): EpicTreeReorderPayload
mergeRequestSetWip(input: MergeRequestSetWipInput!): MergeRequestSetWipPayload
removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload
@@ -2681,18 +3368,49 @@ type Mutation {
}
type Namespace {
+ """
+ Description of the namespace
+ """
description: String
"""
The GitLab Flavored Markdown rendering of `description`
"""
descriptionHtml: String
+
+ """
+ Full name of the namespace
+ """
fullName: String!
+
+ """
+ Full path of the namespace
+ """
fullPath: ID!
+
+ """
+ ID of the namespace
+ """
id: ID!
+
+ """
+ Indicates if Large File Storage (LFS) is enabled for namespace
+ """
lfsEnabled: Boolean
+
+ """
+ Name of the namespace
+ """
name: String!
+
+ """
+ Path of the namespace
+ """
path: String!
+
+ """
+ Projects within this namespace
+ """
projects(
"""
Returns the elements in the list that come after the specified cursor.
@@ -2719,12 +3437,20 @@ type Namespace {
"""
last: Int
): ProjectConnection!
+
+ """
+ Indicates if users can request access to namespace
+ """
requestAccessEnabled: Boolean
"""
- The aggregated storage statistics. Only available for root namespaces
+ Aggregated storage statistics of the namespace. Only available for root namespaces
"""
rootStorageStatistics: RootStorageStatistics
+
+ """
+ Visibility of the namespace
+ """
visibility: String
}
@@ -3018,22 +3744,69 @@ enum PipelineStatusEnum {
}
type Project {
+ """
+ Archived status of the project
+ """
archived: Boolean
+
+ """
+ URL to avatar image file of the project
+ """
avatarUrl: String
+
+ """
+ Indicates if the project stores Docker container images in a container registry
+ """
containerRegistryEnabled: Boolean
+
+ """
+ Timestamp of the project creation
+ """
createdAt: Time
+
+ """
+ Short description of the project
+ """
description: String
"""
The GitLab Flavored Markdown rendering of `description`
"""
descriptionHtml: String
+
+ """
+ Number of times the project has been forked
+ """
forksCount: Int!
+
+ """
+ Full path of the project
+ """
fullPath: ID!
+
+ """
+ Group of the project
+ """
group: Group
+
+ """
+ URL to connect to the project via HTTPS
+ """
httpUrlToRepo: String
+
+ """
+ ID of the project
+ """
id: ID!
+
+ """
+ Status of project import background job of the project
+ """
importStatus: String
+
+ """
+ A single issue of the project
+ """
issue(
"""
Issues closed after this date
@@ -3091,6 +3864,10 @@ type Project {
"""
updatedBefore: Time
): ExtendedIssue
+
+ """
+ Issues of the project
+ """
issues(
"""
Returns the elements in the list that come after the specified cursor.
@@ -3168,10 +3945,30 @@ type Project {
"""
updatedBefore: Time
): IssueConnection
+
+ """
+ (deprecated) Does this project have issues enabled?. Use `issues_access_level` instead
+ """
issuesEnabled: Boolean
+
+ """
+ (deprecated) Enable jobs for this project. Use `builds_access_level` instead
+ """
jobsEnabled: Boolean
+
+ """
+ Timestamp of the project last activity
+ """
lastActivityAt: Time
+
+ """
+ Indicates if the project has Large File Storage (LFS) enabled
+ """
lfsEnabled: Boolean
+
+ """
+ A single merge request of the project
+ """
mergeRequest(
"""
The IID of the merge request, e.g., "1"
@@ -3183,6 +3980,10 @@ type Project {
"""
iids: [String!]
): MergeRequest
+
+ """
+ Merge requests of the project
+ """
mergeRequests(
"""
Returns the elements in the list that come after the specified cursor.
@@ -3214,15 +4015,57 @@ type Project {
"""
last: Int
): MergeRequestConnection
+
+ """
+ (deprecated) Does this project have merge_requests enabled?. Use `merge_requests_access_level` instead
+ """
mergeRequestsEnabled: Boolean
+
+ """
+ Indicates if no merge commits should be created and all merges should instead
+ be fast-forwarded, which means that merging is only allowed if the branch
+ could be fast-forwarded.
+ """
mergeRequestsFfOnlyEnabled: Boolean
+
+ """
+ Name of the project (without namespace)
+ """
name: String!
+
+ """
+ Full name of the project with its namespace
+ """
nameWithNamespace: String!
+
+ """
+ Namespace of the project
+ """
namespace: Namespace
+
+ """
+ Indicates if merge requests of the project can only be merged when all the discussions are resolved
+ """
onlyAllowMergeIfAllDiscussionsAreResolved: Boolean
+
+ """
+ Indicates if merge requests of the project can only be merged with successful jobs
+ """
onlyAllowMergeIfPipelineSucceeds: Boolean
+
+ """
+ Number of open issues for the project
+ """
openIssuesCount: Int
+
+ """
+ Path of the project
+ """
path: String!
+
+ """
+ Build pipelines of the project
+ """
pipelines(
"""
Returns the elements in the list that come after the specified cursor.
@@ -3259,23 +4102,81 @@ type Project {
"""
status: PipelineStatusEnum
): PipelineConnection
+
+ """
+ Indicates if a link to create or view a merge request should display after a
+ push to Git repositories of the project from the command line
+ """
printingMergeRequestLinkEnabled: Boolean
+
+ """
+ Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts
+ """
publicJobs: Boolean
+
+ """
+ Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project
+ """
+ removeSourceBranchAfterMerge: Boolean
+
+ """
+ Git repository of the project
+ """
repository: Repository
+
+ """
+ Indicates if users can request member access to the project
+ """
requestAccessEnabled: Boolean
+
+ """
+ Indicates if shared runners are enabled on the project
+ """
sharedRunnersEnabled: Boolean
+
+ """
+ (deprecated) Does this project have snippets enabled?. Use `snippets_access_level` instead
+ """
snippetsEnabled: Boolean
+
+ """
+ URL to connect to the project via SSH
+ """
sshUrlToRepo: String
+
+ """
+ Number of times the project has been starred
+ """
starCount: Int!
+
+ """
+ Statistics of the project
+ """
statistics: ProjectStatistics
+
+ """
+ List of project tags
+ """
tagList: String
"""
Permissions for the current user on the resource
"""
userPermissions: ProjectPermissions!
+
+ """
+ Visibility of the project
+ """
visibility: String
+
+ """
+ Web URL of the project
+ """
webUrl: String
+
+ """
+ (deprecated) Does this project have wiki enabled?. Use `wiki_access_level` instead
+ """
wikiEnabled: Boolean
}
@@ -3522,12 +4423,39 @@ type ProjectPermissions {
}
type ProjectStatistics {
+ """
+ Build artifacts size of the project
+ """
buildArtifactsSize: Int!
+
+ """
+ Commit count of the project
+ """
commitCount: Int!
+
+ """
+ Large File Storage (LFS) object size of the project
+ """
lfsObjectsSize: Int!
+
+ """
+ Packages size of the project
+ """
packagesSize: Int!
+
+ """
+ Repository size of the project
+ """
repositorySize: Int!
+
+ """
+ Storage size of the project
+ """
storageSize: Int!
+
+ """
+ Wiki size of the project
+ """
wikiSize: Int
}
@@ -3619,9 +4547,24 @@ type RemoveAwardEmojiPayload {
}
type Repository {
+ """
+ Indicates repository has no visible content
+ """
empty: Boolean!
+
+ """
+ Indicates a corresponding Git repository exists on disk
+ """
exists: Boolean!
+
+ """
+ Default branch of the repository
+ """
rootRef: String
+
+ """
+ Tree of the repository
+ """
tree(
"""
The path to get the tree for. Default value is the root of the repository
@@ -3721,7 +4664,14 @@ type SubmoduleEdge {
Completion status of tasks
"""
type TaskCompletionStatus {
+ """
+ Number of completed tasks
+ """
completedCount: Int!
+
+ """
+ Number of total tasks
+ """
count: Int!
}
@@ -3831,9 +4781,30 @@ enum TodoStateEnum {
}
enum TodoTargetEnum {
- Epic
- Issue
- MergeRequest
+ """
+ A Commit
+ """
+ COMMIT
+
+ """
+ A Design
+ """
+ DESIGN
+
+ """
+ An Epic
+ """
+ EPIC
+
+ """
+ An Issue
+ """
+ ISSUE
+
+ """
+ A MergeRequest
+ """
+ MERGEREQUEST
}
"""
@@ -4117,11 +5088,18 @@ type UpdateNotePayload {
scalar Upload
type User {
+ """
+ URL of the user's avatar
+ """
avatarUrl: String!
+
+ """
+ Human-readable name of the user
+ """
name: String!
"""
- Todos of this user
+ Todos of the user
"""
todos(
"""
@@ -4174,7 +5152,15 @@ type User {
"""
type: [TodoTargetEnum!]
): TodoConnection!
+
+ """
+ Username of the user. Unique within this instance of GitLab
+ """
username: String!
+
+ """
+ Web URL of the user
+ """
webUrl: String!
}
diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json
index 3b3b15b8a2c..fd0ce344eab 100644
--- a/doc/api/graphql/reference/gitlab_schema.json
+++ b/doc/api/graphql/reference/gitlab_schema.json
@@ -189,7 +189,7 @@
"fields": [
{
"name": "archived",
- "description": null,
+ "description": "Archived status of the project",
"args": [
],
@@ -203,7 +203,7 @@
},
{
"name": "avatarUrl",
- "description": null,
+ "description": "URL to avatar image file of the project",
"args": [
],
@@ -217,7 +217,7 @@
},
{
"name": "containerRegistryEnabled",
- "description": null,
+ "description": "Indicates if the project stores Docker container images in a container registry",
"args": [
],
@@ -231,7 +231,7 @@
},
{
"name": "createdAt",
- "description": null,
+ "description": "Timestamp of the project creation",
"args": [
],
@@ -245,7 +245,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Short description of the project",
"args": [
],
@@ -273,7 +273,7 @@
},
{
"name": "forksCount",
- "description": null,
+ "description": "Number of times the project has been forked",
"args": [
],
@@ -291,7 +291,7 @@
},
{
"name": "fullPath",
- "description": null,
+ "description": "Full path of the project",
"args": [
],
@@ -309,7 +309,7 @@
},
{
"name": "group",
- "description": null,
+ "description": "Group of the project",
"args": [
],
@@ -323,7 +323,7 @@
},
{
"name": "httpUrlToRepo",
- "description": null,
+ "description": "URL to connect to the project via HTTPS",
"args": [
],
@@ -337,7 +337,7 @@
},
{
"name": "id",
- "description": null,
+ "description": "ID of the project",
"args": [
],
@@ -355,7 +355,7 @@
},
{
"name": "importStatus",
- "description": null,
+ "description": "Status of project import background job of the project",
"args": [
],
@@ -369,7 +369,7 @@
},
{
"name": "issue",
- "description": null,
+ "description": "A single issue of the project",
"args": [
{
"name": "iid",
@@ -514,7 +514,7 @@
},
{
"name": "issues",
- "description": null,
+ "description": "Issues of the project",
"args": [
{
"name": "iid",
@@ -699,7 +699,7 @@
},
{
"name": "issuesEnabled",
- "description": null,
+ "description": "(deprecated) Does this project have issues enabled?. Use `issues_access_level` instead",
"args": [
],
@@ -713,7 +713,7 @@
},
{
"name": "jobsEnabled",
- "description": null,
+ "description": "(deprecated) Enable jobs for this project. Use `builds_access_level` instead",
"args": [
],
@@ -727,7 +727,7 @@
},
{
"name": "lastActivityAt",
- "description": null,
+ "description": "Timestamp of the project last activity",
"args": [
],
@@ -741,7 +741,7 @@
},
{
"name": "lfsEnabled",
- "description": null,
+ "description": "Indicates if the project has Large File Storage (LFS) enabled",
"args": [
],
@@ -755,7 +755,7 @@
},
{
"name": "mergeRequest",
- "description": null,
+ "description": "A single merge request of the project",
"args": [
{
"name": "iid",
@@ -796,7 +796,7 @@
},
{
"name": "mergeRequests",
- "description": null,
+ "description": "Merge requests of the project",
"args": [
{
"name": "iid",
@@ -877,7 +877,7 @@
},
{
"name": "mergeRequestsEnabled",
- "description": null,
+ "description": "(deprecated) Does this project have merge_requests enabled?. Use `merge_requests_access_level` instead",
"args": [
],
@@ -891,7 +891,7 @@
},
{
"name": "mergeRequestsFfOnlyEnabled",
- "description": null,
+ "description": "Indicates if no merge commits should be created and all merges should instead be fast-forwarded, which means that merging is only allowed if the branch could be fast-forwarded.",
"args": [
],
@@ -905,7 +905,7 @@
},
{
"name": "name",
- "description": null,
+ "description": "Name of the project (without namespace)",
"args": [
],
@@ -923,7 +923,7 @@
},
{
"name": "nameWithNamespace",
- "description": null,
+ "description": "Full name of the project with its namespace",
"args": [
],
@@ -941,7 +941,7 @@
},
{
"name": "namespace",
- "description": null,
+ "description": "Namespace of the project",
"args": [
],
@@ -955,7 +955,7 @@
},
{
"name": "onlyAllowMergeIfAllDiscussionsAreResolved",
- "description": null,
+ "description": "Indicates if merge requests of the project can only be merged when all the discussions are resolved",
"args": [
],
@@ -969,7 +969,7 @@
},
{
"name": "onlyAllowMergeIfPipelineSucceeds",
- "description": null,
+ "description": "Indicates if merge requests of the project can only be merged with successful jobs",
"args": [
],
@@ -983,7 +983,7 @@
},
{
"name": "openIssuesCount",
- "description": null,
+ "description": "Number of open issues for the project",
"args": [
],
@@ -997,7 +997,7 @@
},
{
"name": "path",
- "description": null,
+ "description": "Path of the project",
"args": [
],
@@ -1015,7 +1015,7 @@
},
{
"name": "pipelines",
- "description": null,
+ "description": "Build pipelines of the project",
"args": [
{
"name": "status",
@@ -1098,7 +1098,7 @@
},
{
"name": "printingMergeRequestLinkEnabled",
- "description": null,
+ "description": "Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line",
"args": [
],
@@ -1112,7 +1112,21 @@
},
{
"name": "publicJobs",
- "description": null,
+ "description": "Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "removeSourceBranchAfterMerge",
+ "description": "Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project",
"args": [
],
@@ -1126,7 +1140,7 @@
},
{
"name": "repository",
- "description": null,
+ "description": "Git repository of the project",
"args": [
],
@@ -1140,7 +1154,7 @@
},
{
"name": "requestAccessEnabled",
- "description": null,
+ "description": "Indicates if users can request member access to the project",
"args": [
],
@@ -1154,7 +1168,7 @@
},
{
"name": "sharedRunnersEnabled",
- "description": null,
+ "description": "Indicates if shared runners are enabled on the project",
"args": [
],
@@ -1168,7 +1182,7 @@
},
{
"name": "snippetsEnabled",
- "description": null,
+ "description": "(deprecated) Does this project have snippets enabled?. Use `snippets_access_level` instead",
"args": [
],
@@ -1182,7 +1196,7 @@
},
{
"name": "sshUrlToRepo",
- "description": null,
+ "description": "URL to connect to the project via SSH",
"args": [
],
@@ -1196,7 +1210,7 @@
},
{
"name": "starCount",
- "description": null,
+ "description": "Number of times the project has been starred",
"args": [
],
@@ -1214,7 +1228,7 @@
},
{
"name": "statistics",
- "description": null,
+ "description": "Statistics of the project",
"args": [
],
@@ -1228,7 +1242,7 @@
},
{
"name": "tagList",
- "description": null,
+ "description": "List of project tags",
"args": [
],
@@ -1260,7 +1274,7 @@
},
{
"name": "visibility",
- "description": null,
+ "description": "Visibility of the project",
"args": [
],
@@ -1274,7 +1288,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the project",
"args": [
],
@@ -1288,7 +1302,7 @@
},
{
"name": "wikiEnabled",
- "description": null,
+ "description": "(deprecated) Does this project have wiki enabled?. Use `wiki_access_level` instead",
"args": [
],
@@ -2096,7 +2110,7 @@
"fields": [
{
"name": "description",
- "description": null,
+ "description": "Description of the namespace",
"args": [
],
@@ -2124,7 +2138,7 @@
},
{
"name": "fullName",
- "description": null,
+ "description": "Full name of the namespace",
"args": [
],
@@ -2142,7 +2156,7 @@
},
{
"name": "fullPath",
- "description": null,
+ "description": "Full path of the namespace",
"args": [
],
@@ -2160,7 +2174,7 @@
},
{
"name": "id",
- "description": null,
+ "description": "ID of the namespace",
"args": [
],
@@ -2178,7 +2192,7 @@
},
{
"name": "lfsEnabled",
- "description": null,
+ "description": "Indicates if Large File Storage (LFS) is enabled for namespace",
"args": [
],
@@ -2192,7 +2206,7 @@
},
{
"name": "name",
- "description": null,
+ "description": "Name of the namespace",
"args": [
],
@@ -2210,7 +2224,7 @@
},
{
"name": "path",
- "description": null,
+ "description": "Path of the namespace",
"args": [
],
@@ -2228,7 +2242,7 @@
},
{
"name": "projects",
- "description": null,
+ "description": "Projects within this namespace",
"args": [
{
"name": "includeSubgroups",
@@ -2295,7 +2309,7 @@
},
{
"name": "requestAccessEnabled",
- "description": null,
+ "description": "Indicates if users can request access to namespace",
"args": [
],
@@ -2309,7 +2323,7 @@
},
{
"name": "rootStorageStatistics",
- "description": "The aggregated storage statistics. Only available for root namespaces",
+ "description": "Aggregated storage statistics of the namespace. Only available for root namespaces",
"args": [
],
@@ -2323,7 +2337,7 @@
},
{
"name": "visibility",
- "description": null,
+ "description": "Visibility of the namespace",
"args": [
],
@@ -2660,7 +2674,7 @@
"fields": [
{
"name": "avatarUrl",
- "description": null,
+ "description": "Avatar URL of the group",
"args": [
],
@@ -2674,7 +2688,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the namespace",
"args": [
],
@@ -2994,7 +3008,7 @@
},
{
"name": "fullName",
- "description": null,
+ "description": "Full name of the namespace",
"args": [
],
@@ -3012,7 +3026,7 @@
},
{
"name": "fullPath",
- "description": null,
+ "description": "Full path of the namespace",
"args": [
],
@@ -3030,7 +3044,7 @@
},
{
"name": "id",
- "description": null,
+ "description": "ID of the namespace",
"args": [
],
@@ -3048,7 +3062,7 @@
},
{
"name": "lfsEnabled",
- "description": null,
+ "description": "Indicates if Large File Storage (LFS) is enabled for namespace",
"args": [
],
@@ -3062,7 +3076,7 @@
},
{
"name": "name",
- "description": null,
+ "description": "Name of the namespace",
"args": [
],
@@ -3080,7 +3094,7 @@
},
{
"name": "parent",
- "description": null,
+ "description": "Parent group",
"args": [
],
@@ -3094,7 +3108,7 @@
},
{
"name": "path",
- "description": null,
+ "description": "Path of the namespace",
"args": [
],
@@ -3112,7 +3126,7 @@
},
{
"name": "projects",
- "description": null,
+ "description": "Projects within this namespace",
"args": [
{
"name": "includeSubgroups",
@@ -3179,7 +3193,7 @@
},
{
"name": "requestAccessEnabled",
- "description": null,
+ "description": "Indicates if users can request access to namespace",
"args": [
],
@@ -3193,7 +3207,7 @@
},
{
"name": "rootStorageStatistics",
- "description": "The aggregated storage statistics. Only available for root namespaces",
+ "description": "Aggregated storage statistics of the namespace. Only available for root namespaces",
"args": [
],
@@ -3225,7 +3239,7 @@
},
{
"name": "visibility",
- "description": null,
+ "description": "Visibility of the namespace",
"args": [
],
@@ -3239,7 +3253,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the group",
"args": [
],
@@ -4758,7 +4772,7 @@
"fields": [
{
"name": "avatarUrl",
- "description": null,
+ "description": "URL of the user's avatar",
"args": [
],
@@ -4776,7 +4790,7 @@
},
{
"name": "name",
- "description": null,
+ "description": "Human-readable name of the user",
"args": [
],
@@ -4794,7 +4808,7 @@
},
{
"name": "todos",
- "description": "Todos of this user",
+ "description": "Todos of the user",
"args": [
{
"name": "action",
@@ -4959,7 +4973,7 @@
},
{
"name": "username",
- "description": null,
+ "description": "Username of the user. Unique within this instance of GitLab",
"args": [
],
@@ -4977,7 +4991,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the user",
"args": [
],
@@ -5342,20 +5356,32 @@
"interfaces": null,
"enumValues": [
{
- "name": "Issue",
- "description": null,
+ "name": "COMMIT",
+ "description": "A Commit",
"isDeprecated": false,
"deprecationReason": null
},
{
- "name": "MergeRequest",
- "description": null,
+ "name": "ISSUE",
+ "description": "An Issue",
"isDeprecated": false,
"deprecationReason": null
},
{
- "name": "Epic",
- "description": null,
+ "name": "MERGEREQUEST",
+ "description": "A MergeRequest",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "DESIGN",
+ "description": "A Design",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "EPIC",
+ "description": "An Epic",
"isDeprecated": false,
"deprecationReason": null
}
@@ -6454,7 +6480,7 @@
"fields": [
{
"name": "assignees",
- "description": null,
+ "description": "Assignees of the issue",
"args": [
{
"name": "after",
@@ -6507,7 +6533,7 @@
},
{
"name": "author",
- "description": null,
+ "description": "User that created the issue",
"args": [
],
@@ -6525,7 +6551,7 @@
},
{
"name": "closedAt",
- "description": null,
+ "description": "Timestamp of when the issue was closed",
"args": [
],
@@ -6539,7 +6565,7 @@
},
{
"name": "confidential",
- "description": null,
+ "description": "Indicates the issue is confidential",
"args": [
],
@@ -6557,7 +6583,7 @@
},
{
"name": "createdAt",
- "description": null,
+ "description": "Timestamp of when the issue was created",
"args": [
],
@@ -6575,7 +6601,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the issue",
"args": [
],
@@ -6631,7 +6657,7 @@
},
{
"name": "discussionLocked",
- "description": null,
+ "description": "Indicates discussion is locked on the issue",
"args": [
],
@@ -6706,7 +6732,7 @@
},
{
"name": "downvotes",
- "description": null,
+ "description": "Number of downvotes the issue has received",
"args": [
],
@@ -6724,7 +6750,7 @@
},
{
"name": "dueDate",
- "description": null,
+ "description": "Due date of the issue",
"args": [
],
@@ -6784,7 +6810,7 @@
},
{
"name": "iid",
- "description": null,
+ "description": "Internal ID of the issue",
"args": [
],
@@ -6802,7 +6828,7 @@
},
{
"name": "labels",
- "description": null,
+ "description": "Labels of the issue",
"args": [
{
"name": "after",
@@ -6855,7 +6881,7 @@
},
{
"name": "milestone",
- "description": null,
+ "description": "Milestone of the issue",
"args": [
],
@@ -6926,7 +6952,7 @@
},
{
"name": "participants",
- "description": "List of participants for the issue",
+ "description": "List of participants in the issue",
"args": [
{
"name": "after",
@@ -6979,11 +7005,11 @@
},
{
"name": "reference",
- "description": null,
+ "description": "Internal reference of the issue. Returned in shortened format by default",
"args": [
{
"name": "full",
- "description": null,
+ "description": "Boolean option specifying whether the reference should be returned in full",
"type": {
"kind": "SCALAR",
"name": "Boolean",
@@ -7020,7 +7046,7 @@
},
{
"name": "relativePosition",
- "description": null,
+ "description": "Relative position of the issue (used for positioning in epic tree and issue boards)",
"args": [
],
@@ -7034,7 +7060,7 @@
},
{
"name": "state",
- "description": null,
+ "description": "State of the issue",
"args": [
],
@@ -7052,7 +7078,7 @@
},
{
"name": "taskCompletionStatus",
- "description": null,
+ "description": "Task completion status of the issue",
"args": [
],
@@ -7070,7 +7096,7 @@
},
{
"name": "timeEstimate",
- "description": "The time estimate on the issue",
+ "description": "Time estimate of the issue",
"args": [
],
@@ -7088,7 +7114,7 @@
},
{
"name": "title",
- "description": null,
+ "description": "Title of the issue",
"args": [
],
@@ -7138,7 +7164,7 @@
},
{
"name": "updatedAt",
- "description": null,
+ "description": "Timestamp of when the issue was last updated",
"args": [
],
@@ -7156,7 +7182,7 @@
},
{
"name": "upvotes",
- "description": null,
+ "description": "Number of upvotes the issue has received",
"args": [
],
@@ -7174,7 +7200,7 @@
},
{
"name": "userNotesCount",
- "description": null,
+ "description": "Number of user notes of the issue",
"args": [
],
@@ -7210,7 +7236,7 @@
},
{
"name": "webPath",
- "description": null,
+ "description": "Web path of the issue",
"args": [
],
@@ -7228,7 +7254,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the issue",
"args": [
],
@@ -7575,7 +7601,7 @@
"fields": [
{
"name": "color",
- "description": null,
+ "description": "Background color of the label",
"args": [
],
@@ -7593,7 +7619,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the label (markdown rendered as HTML for caching)",
"args": [
],
@@ -7621,7 +7647,7 @@
},
{
"name": "textColor",
- "description": null,
+ "description": "Text color of the label",
"args": [
],
@@ -7639,7 +7665,7 @@
},
{
"name": "title",
- "description": null,
+ "description": "Content of the label",
"args": [
],
@@ -7670,7 +7696,7 @@
"fields": [
{
"name": "createdAt",
- "description": null,
+ "description": "Timestamp of milestone creation",
"args": [
],
@@ -7688,7 +7714,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the milestone",
"args": [
],
@@ -7702,7 +7728,7 @@
},
{
"name": "dueDate",
- "description": null,
+ "description": "Timestamp of the milestone due date",
"args": [
],
@@ -7716,7 +7742,7 @@
},
{
"name": "startDate",
- "description": null,
+ "description": "Timestamp of the milestone start date",
"args": [
],
@@ -7730,7 +7756,7 @@
},
{
"name": "state",
- "description": null,
+ "description": "State of the milestone",
"args": [
],
@@ -7748,7 +7774,7 @@
},
{
"name": "title",
- "description": null,
+ "description": "Title of the milestone",
"args": [
],
@@ -7766,7 +7792,7 @@
},
{
"name": "updatedAt",
- "description": null,
+ "description": "Timestamp of last milestone update",
"args": [
],
@@ -7797,7 +7823,7 @@
"fields": [
{
"name": "completedCount",
- "description": null,
+ "description": "Number of completed tasks",
"args": [
],
@@ -7815,7 +7841,7 @@
},
{
"name": "count",
- "description": null,
+ "description": "Number of total tasks",
"args": [
],
@@ -7848,6 +7874,24 @@
"name": "designs",
"description": "All designs for this collection",
"args": [
+ {
+ "name": "ids",
+ "description": "The list of IDs of designs.",
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ }
+ },
+ "defaultValue": null
+ },
{
"name": "atVersion",
"description": "Filters designs to only those that existed at the version. If argument is omitted or nil then all designs will reflect the latest version.",
@@ -8019,7 +8063,7 @@
"fields": [
{
"name": "assignees",
- "description": null,
+ "description": "Assignees of the issue",
"args": [
{
"name": "after",
@@ -8072,7 +8116,7 @@
},
{
"name": "author",
- "description": null,
+ "description": "User that created the issue",
"args": [
],
@@ -8090,7 +8134,7 @@
},
{
"name": "closedAt",
- "description": null,
+ "description": "Timestamp of when the issue was closed",
"args": [
],
@@ -8104,7 +8148,7 @@
},
{
"name": "confidential",
- "description": null,
+ "description": "Indicates the issue is confidential",
"args": [
],
@@ -8122,7 +8166,7 @@
},
{
"name": "createdAt",
- "description": null,
+ "description": "Timestamp of when the issue was created",
"args": [
],
@@ -8140,7 +8184,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the issue",
"args": [
],
@@ -8196,7 +8240,7 @@
},
{
"name": "discussionLocked",
- "description": null,
+ "description": "Indicates discussion is locked on the issue",
"args": [
],
@@ -8271,7 +8315,7 @@
},
{
"name": "downvotes",
- "description": null,
+ "description": "Number of downvotes the issue has received",
"args": [
],
@@ -8289,7 +8333,7 @@
},
{
"name": "dueDate",
- "description": null,
+ "description": "Due date of the issue",
"args": [
],
@@ -8317,7 +8361,7 @@
},
{
"name": "iid",
- "description": null,
+ "description": "Internal ID of the issue",
"args": [
],
@@ -8335,7 +8379,7 @@
},
{
"name": "labels",
- "description": null,
+ "description": "Labels of the issue",
"args": [
{
"name": "after",
@@ -8388,7 +8432,7 @@
},
{
"name": "milestone",
- "description": null,
+ "description": "Milestone of the issue",
"args": [
],
@@ -8459,7 +8503,7 @@
},
{
"name": "participants",
- "description": "List of participants for the issue",
+ "description": "List of participants in the issue",
"args": [
{
"name": "after",
@@ -8512,11 +8556,11 @@
},
{
"name": "reference",
- "description": null,
+ "description": "Internal reference of the issue. Returned in shortened format by default",
"args": [
{
"name": "full",
- "description": null,
+ "description": "Boolean option specifying whether the reference should be returned in full",
"type": {
"kind": "SCALAR",
"name": "Boolean",
@@ -8539,7 +8583,7 @@
},
{
"name": "relativePosition",
- "description": null,
+ "description": "Relative position of the issue (used for positioning in epic tree and issue boards)",
"args": [
],
@@ -8553,7 +8597,7 @@
},
{
"name": "state",
- "description": null,
+ "description": "State of the issue",
"args": [
],
@@ -8571,7 +8615,7 @@
},
{
"name": "taskCompletionStatus",
- "description": null,
+ "description": "Task completion status of the issue",
"args": [
],
@@ -8589,7 +8633,7 @@
},
{
"name": "timeEstimate",
- "description": "The time estimate on the issue",
+ "description": "Time estimate of the issue",
"args": [
],
@@ -8607,7 +8651,7 @@
},
{
"name": "title",
- "description": null,
+ "description": "Title of the issue",
"args": [
],
@@ -8657,7 +8701,7 @@
},
{
"name": "updatedAt",
- "description": null,
+ "description": "Timestamp of when the issue was last updated",
"args": [
],
@@ -8675,7 +8719,7 @@
},
{
"name": "upvotes",
- "description": null,
+ "description": "Number of upvotes the issue has received",
"args": [
],
@@ -8693,7 +8737,7 @@
},
{
"name": "userNotesCount",
- "description": null,
+ "description": "Number of user notes of the issue",
"args": [
],
@@ -8729,7 +8773,7 @@
},
{
"name": "webPath",
- "description": null,
+ "description": "Web path of the issue",
"args": [
],
@@ -8747,7 +8791,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the issue",
"args": [
],
@@ -9511,7 +9555,7 @@
"fields": [
{
"name": "buildArtifactsSize",
- "description": null,
+ "description": "Build artifacts size of the project",
"args": [
],
@@ -9529,7 +9573,7 @@
},
{
"name": "commitCount",
- "description": null,
+ "description": "Commit count of the project",
"args": [
],
@@ -9547,7 +9591,7 @@
},
{
"name": "lfsObjectsSize",
- "description": null,
+ "description": "Large File Storage (LFS) object size of the project",
"args": [
],
@@ -9565,7 +9609,7 @@
},
{
"name": "packagesSize",
- "description": null,
+ "description": "Packages size of the project",
"args": [
],
@@ -9583,7 +9627,7 @@
},
{
"name": "repositorySize",
- "description": null,
+ "description": "Repository size of the project",
"args": [
],
@@ -9601,7 +9645,7 @@
},
{
"name": "storageSize",
- "description": null,
+ "description": "Storage size of the project",
"args": [
],
@@ -9619,7 +9663,7 @@
},
{
"name": "wikiSize",
- "description": null,
+ "description": "Wiki size of the project",
"args": [
],
@@ -9646,7 +9690,7 @@
"fields": [
{
"name": "empty",
- "description": null,
+ "description": "Indicates repository has no visible content",
"args": [
],
@@ -9664,7 +9708,7 @@
},
{
"name": "exists",
- "description": null,
+ "description": "Indicates a corresponding Git repository exists on disk",
"args": [
],
@@ -9682,7 +9726,7 @@
},
{
"name": "rootRef",
- "description": null,
+ "description": "Default branch of the repository",
"args": [
],
@@ -9696,7 +9740,7 @@
},
{
"name": "tree",
- "description": null,
+ "description": "Tree of the repository",
"args": [
{
"name": "path",
@@ -9950,7 +9994,7 @@
"fields": [
{
"name": "author",
- "description": null,
+ "description": "Author of the commit",
"args": [
],
@@ -9964,7 +10008,7 @@
},
{
"name": "authoredDate",
- "description": null,
+ "description": "Timestamp of when the commit was authored",
"args": [
],
@@ -9978,7 +10022,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the commit message",
"args": [
],
@@ -9992,7 +10036,7 @@
},
{
"name": "id",
- "description": null,
+ "description": "ID (global ID) of the commit",
"args": [
],
@@ -10010,7 +10054,7 @@
},
{
"name": "latestPipeline",
- "description": "Latest pipeline for this commit",
+ "description": "Latest pipeline of the commit",
"args": [
],
@@ -10024,7 +10068,7 @@
},
{
"name": "message",
- "description": null,
+ "description": "Raw commit message",
"args": [
],
@@ -10038,7 +10082,7 @@
},
{
"name": "sha",
- "description": null,
+ "description": "SHA1 ID of the commit",
"args": [
],
@@ -10056,7 +10100,7 @@
},
{
"name": "signatureHtml",
- "description": "Rendered html for the commit signature",
+ "description": "Rendered HTML of the commit signature",
"args": [
],
@@ -10070,7 +10114,7 @@
},
{
"name": "title",
- "description": null,
+ "description": "Title of the commit message",
"args": [
],
@@ -10084,7 +10128,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the commit",
"args": [
],
@@ -11646,7 +11690,7 @@
"fields": [
{
"name": "allowCollaboration",
- "description": null,
+ "description": "Indicates if members of the target project can push to the fork",
"args": [
],
@@ -11660,7 +11704,7 @@
},
{
"name": "assignees",
- "description": "The list of assignees for the merge request",
+ "description": "Assignees of the merge request",
"args": [
{
"name": "after",
@@ -11713,7 +11757,7 @@
},
{
"name": "createdAt",
- "description": null,
+ "description": "Timestamp of when the merge request was created",
"args": [
],
@@ -11731,7 +11775,7 @@
},
{
"name": "defaultMergeCommitMessage",
- "description": null,
+ "description": "Default merge commit message of the merge request",
"args": [
],
@@ -11745,7 +11789,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the merge request (markdown rendered as HTML for caching)",
"args": [
],
@@ -11773,7 +11817,7 @@
},
{
"name": "diffHeadSha",
- "description": null,
+ "description": "Diff head SHA of the merge request",
"args": [
],
@@ -11787,7 +11831,7 @@
},
{
"name": "diffRefs",
- "description": null,
+ "description": "References of the base SHA, the head SHA, and the start SHA for this merge request",
"args": [
],
@@ -11801,7 +11845,7 @@
},
{
"name": "discussionLocked",
- "description": "Boolean flag determining if comments on the merge request are locked to members only",
+ "description": "Indicates if comments on the merge request are locked to members only",
"args": [
],
@@ -11876,7 +11920,7 @@
},
{
"name": "downvotes",
- "description": null,
+ "description": "Number of downvotes for the merge request",
"args": [
],
@@ -11894,7 +11938,7 @@
},
{
"name": "forceRemoveSourceBranch",
- "description": null,
+ "description": "Indicates if the project settings will lead to source branch deletion after merge",
"args": [
],
@@ -11908,7 +11952,7 @@
},
{
"name": "headPipeline",
- "description": null,
+ "description": "The pipeline running on the branch HEAD of the merge request",
"args": [
],
@@ -11922,7 +11966,7 @@
},
{
"name": "id",
- "description": null,
+ "description": "ID of the merge request",
"args": [
],
@@ -11940,7 +11984,7 @@
},
{
"name": "iid",
- "description": null,
+ "description": "Internal ID of the merge request",
"args": [
],
@@ -11958,7 +12002,7 @@
},
{
"name": "inProgressMergeCommitSha",
- "description": null,
+ "description": "Commit SHA of the merge request if merge is in progress",
"args": [
],
@@ -11972,7 +12016,7 @@
},
{
"name": "labels",
- "description": "The list of labels on the merge request",
+ "description": "Labels of the merge request",
"args": [
{
"name": "after",
@@ -12025,7 +12069,7 @@
},
{
"name": "mergeCommitMessage",
- "description": null,
+ "description": "Deprecated - renamed to defaultMergeCommitMessage",
"args": [
],
@@ -12039,7 +12083,7 @@
},
{
"name": "mergeCommitSha",
- "description": null,
+ "description": "SHA of the merge request commit (set once merged)",
"args": [
],
@@ -12053,7 +12097,7 @@
},
{
"name": "mergeError",
- "description": null,
+ "description": "Error message due to a merge error",
"args": [
],
@@ -12067,7 +12111,7 @@
},
{
"name": "mergeOngoing",
- "description": null,
+ "description": "Indicates if a merge is currently occurring",
"args": [
],
@@ -12085,7 +12129,7 @@
},
{
"name": "mergeStatus",
- "description": null,
+ "description": "Status of the merge request",
"args": [
],
@@ -12099,7 +12143,7 @@
},
{
"name": "mergeWhenPipelineSucceeds",
- "description": null,
+ "description": "Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS)",
"args": [
],
@@ -12113,7 +12157,7 @@
},
{
"name": "mergeableDiscussionsState",
- "description": null,
+ "description": "Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged",
"args": [
],
@@ -12127,7 +12171,7 @@
},
{
"name": "milestone",
- "description": "The milestone this merge request is linked to",
+ "description": "The milestone of the merge request",
"args": [
],
@@ -12198,7 +12242,7 @@
},
{
"name": "participants",
- "description": "The list of participants on the merge request",
+ "description": "Participants in the merge request",
"args": [
{
"name": "after",
@@ -12251,7 +12295,7 @@
},
{
"name": "pipelines",
- "description": null,
+ "description": "Pipelines for the merge request",
"args": [
{
"name": "status",
@@ -12338,7 +12382,7 @@
},
{
"name": "project",
- "description": null,
+ "description": "Alias for target_project",
"args": [
],
@@ -12356,7 +12400,7 @@
},
{
"name": "projectId",
- "description": null,
+ "description": "ID of the merge request project",
"args": [
],
@@ -12374,7 +12418,7 @@
},
{
"name": "rebaseCommitSha",
- "description": null,
+ "description": "Rebase commit SHA of the merge request",
"args": [
],
@@ -12388,7 +12432,7 @@
},
{
"name": "rebaseInProgress",
- "description": null,
+ "description": "Indicates if there is a rebase currently in progress for the merge request",
"args": [
],
@@ -12406,7 +12450,7 @@
},
{
"name": "reference",
- "description": "Internal merge request reference. Returned in shortened format by default",
+ "description": "Internal reference of the merge request. Returned in shortened format by default",
"args": [
{
"name": "full",
@@ -12433,7 +12477,7 @@
},
{
"name": "shouldBeRebased",
- "description": null,
+ "description": "Indicates if the merge request will be rebased",
"args": [
],
@@ -12451,7 +12495,7 @@
},
{
"name": "shouldRemoveSourceBranch",
- "description": null,
+ "description": "Indicates if the source branch of the merge request will be deleted after merge",
"args": [
],
@@ -12465,7 +12509,7 @@
},
{
"name": "sourceBranch",
- "description": null,
+ "description": "Source branch of the merge request",
"args": [
],
@@ -12483,7 +12527,7 @@
},
{
"name": "sourceBranchExists",
- "description": null,
+ "description": "Indicates if the source branch of the merge request exists",
"args": [
],
@@ -12501,7 +12545,7 @@
},
{
"name": "sourceProject",
- "description": null,
+ "description": "Source project of the merge request",
"args": [
],
@@ -12515,7 +12559,7 @@
},
{
"name": "sourceProjectId",
- "description": null,
+ "description": "ID of the merge request source project",
"args": [
],
@@ -12529,7 +12573,7 @@
},
{
"name": "state",
- "description": null,
+ "description": "State of the merge request",
"args": [
],
@@ -12547,7 +12591,7 @@
},
{
"name": "subscribed",
- "description": "Boolean flag for whether the currently logged in user is subscribed to this MR",
+ "description": "Indicates if the currently logged in user is subscribed to this merge request",
"args": [
],
@@ -12565,7 +12609,7 @@
},
{
"name": "targetBranch",
- "description": null,
+ "description": "Target branch of the merge request",
"args": [
],
@@ -12583,7 +12627,7 @@
},
{
"name": "targetProject",
- "description": null,
+ "description": "Target project of the merge request",
"args": [
],
@@ -12601,7 +12645,7 @@
},
{
"name": "targetProjectId",
- "description": null,
+ "description": "ID of the merge request target project",
"args": [
],
@@ -12619,7 +12663,7 @@
},
{
"name": "taskCompletionStatus",
- "description": null,
+ "description": "Completion status of tasks",
"args": [
],
@@ -12637,7 +12681,7 @@
},
{
"name": "timeEstimate",
- "description": "The time estimate for the merge request",
+ "description": "Time estimate of the merge request",
"args": [
],
@@ -12655,7 +12699,7 @@
},
{
"name": "title",
- "description": null,
+ "description": "Title of the merge request",
"args": [
],
@@ -12705,7 +12749,7 @@
},
{
"name": "updatedAt",
- "description": null,
+ "description": "Timestamp of when the merge request was last updated",
"args": [
],
@@ -12723,7 +12767,7 @@
},
{
"name": "upvotes",
- "description": null,
+ "description": "Number of upvotes for the merge request",
"args": [
],
@@ -12741,7 +12785,7 @@
},
{
"name": "userNotesCount",
- "description": null,
+ "description": "User notes count of the merge request",
"args": [
],
@@ -12773,7 +12817,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the merge request",
"args": [
],
@@ -12787,7 +12831,7 @@
},
{
"name": "workInProgress",
- "description": null,
+ "description": "Indicates if the merge request is a work in progress (WIP)",
"args": [
],
@@ -13302,7 +13346,7 @@
"fields": [
{
"name": "assignees",
- "description": null,
+ "description": "Assignees of the issue",
"args": [
{
"name": "after",
@@ -13355,7 +13399,7 @@
},
{
"name": "author",
- "description": null,
+ "description": "User that created the issue",
"args": [
],
@@ -13373,7 +13417,7 @@
},
{
"name": "closedAt",
- "description": null,
+ "description": "Timestamp of when the issue was closed",
"args": [
],
@@ -13387,7 +13431,7 @@
},
{
"name": "confidential",
- "description": null,
+ "description": "Indicates the issue is confidential",
"args": [
],
@@ -13405,7 +13449,7 @@
},
{
"name": "createdAt",
- "description": null,
+ "description": "Timestamp of when the issue was created",
"args": [
],
@@ -13423,7 +13467,7 @@
},
{
"name": "description",
- "description": null,
+ "description": "Description of the issue",
"args": [
],
@@ -13479,7 +13523,7 @@
},
{
"name": "discussionLocked",
- "description": null,
+ "description": "Indicates discussion is locked on the issue",
"args": [
],
@@ -13554,7 +13598,7 @@
},
{
"name": "downvotes",
- "description": null,
+ "description": "Number of downvotes the issue has received",
"args": [
],
@@ -13572,7 +13616,7 @@
},
{
"name": "dueDate",
- "description": null,
+ "description": "Due date of the issue",
"args": [
],
@@ -13600,7 +13644,7 @@
},
{
"name": "iid",
- "description": null,
+ "description": "Internal ID of the issue",
"args": [
],
@@ -13618,7 +13662,7 @@
},
{
"name": "labels",
- "description": null,
+ "description": "Labels of the issue",
"args": [
{
"name": "after",
@@ -13671,7 +13715,7 @@
},
{
"name": "milestone",
- "description": null,
+ "description": "Milestone of the issue",
"args": [
],
@@ -13742,7 +13786,7 @@
},
{
"name": "participants",
- "description": "List of participants for the issue",
+ "description": "List of participants in the issue",
"args": [
{
"name": "after",
@@ -13795,11 +13839,11 @@
},
{
"name": "reference",
- "description": null,
+ "description": "Internal reference of the issue. Returned in shortened format by default",
"args": [
{
"name": "full",
- "description": null,
+ "description": "Boolean option specifying whether the reference should be returned in full",
"type": {
"kind": "SCALAR",
"name": "Boolean",
@@ -13822,7 +13866,7 @@
},
{
"name": "relativePosition",
- "description": null,
+ "description": "Relative position of the issue (used for positioning in epic tree and issue boards)",
"args": [
],
@@ -13836,7 +13880,7 @@
},
{
"name": "state",
- "description": null,
+ "description": "State of the issue",
"args": [
],
@@ -13872,7 +13916,7 @@
},
{
"name": "taskCompletionStatus",
- "description": null,
+ "description": "Task completion status of the issue",
"args": [
],
@@ -13890,7 +13934,7 @@
},
{
"name": "timeEstimate",
- "description": "The time estimate on the issue",
+ "description": "Time estimate of the issue",
"args": [
],
@@ -13908,7 +13952,7 @@
},
{
"name": "title",
- "description": null,
+ "description": "Title of the issue",
"args": [
],
@@ -13958,7 +14002,7 @@
},
{
"name": "updatedAt",
- "description": null,
+ "description": "Timestamp of when the issue was last updated",
"args": [
],
@@ -13976,7 +14020,7 @@
},
{
"name": "upvotes",
- "description": null,
+ "description": "Number of upvotes the issue has received",
"args": [
],
@@ -13994,7 +14038,7 @@
},
{
"name": "userNotesCount",
- "description": null,
+ "description": "Number of user notes of the issue",
"args": [
],
@@ -14030,7 +14074,7 @@
},
{
"name": "webPath",
- "description": null,
+ "description": "Web path of the issue",
"args": [
],
@@ -14048,7 +14092,7 @@
},
{
"name": "webUrl",
- "description": null,
+ "description": "Web URL of the issue",
"args": [
],
@@ -14097,7 +14141,7 @@
"fields": [
{
"name": "revision",
- "description": null,
+ "description": "Revision",
"args": [
],
@@ -14115,7 +14159,7 @@
},
{
"name": "version",
- "description": null,
+ "description": "Version",
"args": [
],
@@ -14198,6 +14242,33 @@
"isDeprecated": false,
"deprecationReason": null
},
+ {
+ "name": "createEpic",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "CreateEpicInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "CreateEpicPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
{
"name": "createImageDiffNote",
"description": null,
@@ -14333,6 +14404,33 @@
"isDeprecated": false,
"deprecationReason": null
},
+ {
+ "name": "epicSetSubscription",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "EpicSetSubscriptionInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "EpicSetSubscriptionPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
{
"name": "epicTreeReorder",
"description": null,
@@ -16550,6 +16648,66 @@
},
"defaultValue": null
},
+ {
+ "name": "title",
+ "description": "The title of the epic",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "description",
+ "description": "The description of the epic",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "startDateFixed",
+ "description": "The start date of the epic",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "dueDateFixed",
+ "description": "The end date of the epic",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "startDateIsFixed",
+ "description": "Indicates start date should be sourced from start_date_fixed field not the issue milestones",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "dueDateIsFixed",
+ "description": "Indicates end date should be sourced from due_date_fixed field not the issue milestones",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
{
"name": "iid",
"description": "The iid of the epic to mutate",
@@ -16564,6 +16722,141 @@
},
"defaultValue": null
},
+ {
+ "name": "stateEvent",
+ "description": "State event for the epic",
+ "type": {
+ "kind": "ENUM",
+ "name": "EpicStateEvent",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "EpicStateEvent",
+ "description": "State event of a GitLab Epic",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "REOPEN",
+ "description": "Reopen the Epic",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "CLOSE",
+ "description": "Close the Epic",
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "CreateEpicPayload",
+ "description": "Autogenerated return type of CreateEpic",
+ "fields": [
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "epic",
+ "description": "The created epic",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Epic",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "errors",
+ "description": "Reasons why the mutation failed.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
+ "name": "CreateEpicInput",
+ "description": "Autogenerated input type of CreateEpic",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "groupPath",
+ "description": "The group the epic to mutate is in",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
{
"name": "title",
"description": "The title of the epic",
@@ -16625,14 +16918,134 @@
"defaultValue": null
},
{
- "name": "stateEvent",
- "description": "State event for the epic",
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
"type": {
- "kind": "ENUM",
- "name": "EpicStateEvent",
+ "kind": "SCALAR",
+ "name": "String",
"ofType": null
},
"defaultValue": null
+ }
+ ],
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "EpicSetSubscriptionPayload",
+ "description": "Autogenerated return type of EpicSetSubscription",
+ "fields": [
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "epic",
+ "description": "The epic after mutation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Epic",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "errors",
+ "description": "Reasons why the mutation failed.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
+ "name": "EpicSetSubscriptionInput",
+ "description": "Autogenerated input type of EpicSetSubscription",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "groupPath",
+ "description": "The group the epic to (un)subscribe is in",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "iid",
+ "description": "The iid of the epic to (un)subscribe",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "subscribedState",
+ "description": "The desired state of the subscription",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
},
{
"name": "clientMutationId",
@@ -16649,29 +17062,6 @@
"enumValues": null,
"possibleTypes": null
},
- {
- "kind": "ENUM",
- "name": "EpicStateEvent",
- "description": "State event of a GitLab Epic",
- "fields": null,
- "inputFields": null,
- "interfaces": null,
- "enumValues": [
- {
- "name": "REOPEN",
- "description": "Reopen the Epic",
- "isDeprecated": false,
- "deprecationReason": null
- },
- {
- "name": "CLOSE",
- "description": "Close the Epic",
- "isDeprecated": false,
- "deprecationReason": null
- }
- ],
- "possibleTypes": null
- },
{
"kind": "OBJECT",
"name": "__Schema",
@@ -17663,4 +18053,4 @@
]
}
}
-}
+}
\ No newline at end of file
diff --git a/spec/helpers/markup_helper_spec.rb b/spec/helpers/markup_helper_spec.rb
index 32851249b2e..683c04428ab 100644
--- a/spec/helpers/markup_helper_spec.rb
+++ b/spec/helpers/markup_helper_spec.rb
@@ -210,7 +210,7 @@ describe MarkupHelper do
it 'replaces commit message with emoji to link' do
actual = link_to_markdown(':book: Book', '/foo')
expect(actual)
- .to eq '📖 Book'
+ .to eq '📖 Book'
end
end
@@ -232,6 +232,12 @@ describe MarkupHelper do
expect(doc.css('a')[0].attr('href')).to eq link
expect(doc.css('a')[0].text).to eq 'This should finally fix '
end
+
+ it "escapes HTML passed as an emoji" do
+ rendered = '<div class="test">test</div>'
+ expect(helper.link_to_html(rendered, '/foo'))
+ .to eq '<div class="test">test</div>'
+ end
end
describe '#render_wiki_content' do