@enrichlayer/el-linear 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +219 -0
- package/claude-skills/linear-operations/SKILL.md +315 -0
- package/claude-skills/linear-operations/evals/evals.json +46 -0
- package/dist/commands/attachments.d.ts +2 -0
- package/dist/commands/attachments.js +57 -0
- package/dist/commands/batch.d.ts +2 -0
- package/dist/commands/batch.js +309 -0
- package/dist/commands/comments.d.ts +2 -0
- package/dist/commands/comments.js +272 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.js +15 -0
- package/dist/commands/cycles.d.ts +2 -0
- package/dist/commands/cycles.js +63 -0
- package/dist/commands/documents.d.ts +2 -0
- package/dist/commands/documents.js +175 -0
- package/dist/commands/embeds.d.ts +2 -0
- package/dist/commands/embeds.js +65 -0
- package/dist/commands/gdoc.d.ts +2 -0
- package/dist/commands/gdoc.js +37 -0
- package/dist/commands/graphql.d.ts +2 -0
- package/dist/commands/graphql.js +70 -0
- package/dist/commands/init/aliases.d.ts +109 -0
- package/dist/commands/init/aliases.js +569 -0
- package/dist/commands/init/defaults.d.ts +25 -0
- package/dist/commands/init/defaults.js +112 -0
- package/dist/commands/init/index.d.ts +18 -0
- package/dist/commands/init/index.js +182 -0
- package/dist/commands/init/shared.d.ts +88 -0
- package/dist/commands/init/shared.js +164 -0
- package/dist/commands/init/token.d.ts +50 -0
- package/dist/commands/init/token.js +141 -0
- package/dist/commands/init/workspace.d.ts +20 -0
- package/dist/commands/init/workspace.js +80 -0
- package/dist/commands/issue-id.d.ts +28 -0
- package/dist/commands/issue-id.js +81 -0
- package/dist/commands/issues.d.ts +2 -0
- package/dist/commands/issues.js +1145 -0
- package/dist/commands/labels.d.ts +2 -0
- package/dist/commands/labels.js +100 -0
- package/dist/commands/project-milestones.d.ts +2 -0
- package/dist/commands/project-milestones.js +143 -0
- package/dist/commands/projects.d.ts +2 -0
- package/dist/commands/projects.js +336 -0
- package/dist/commands/read-shortcut.d.ts +6 -0
- package/dist/commands/read-shortcut.js +69 -0
- package/dist/commands/releases.d.ts +2 -0
- package/dist/commands/releases.js +142 -0
- package/dist/commands/search.d.ts +2 -0
- package/dist/commands/search.js +171 -0
- package/dist/commands/teams.d.ts +2 -0
- package/dist/commands/teams.js +19 -0
- package/dist/commands/templates.d.ts +2 -0
- package/dist/commands/templates.js +58 -0
- package/dist/commands/users.d.ts +2 -0
- package/dist/commands/users.js +17 -0
- package/dist/config/config.d.ts +43 -0
- package/dist/config/config.js +81 -0
- package/dist/config/issue-validation.d.ts +39 -0
- package/dist/config/issue-validation.js +264 -0
- package/dist/config/paths.d.ts +20 -0
- package/dist/config/paths.js +22 -0
- package/dist/config/resolver.d.ts +25 -0
- package/dist/config/resolver.js +183 -0
- package/dist/config/status-defaults.d.ts +13 -0
- package/dist/config/status-defaults.js +20 -0
- package/dist/config/term-enforcer.d.ts +31 -0
- package/dist/config/term-enforcer.js +69 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +76 -0
- package/dist/queries/attachments.d.ts +3 -0
- package/dist/queries/attachments.js +35 -0
- package/dist/queries/comments.d.ts +3 -0
- package/dist/queries/comments.js +64 -0
- package/dist/queries/common.d.ts +2 -0
- package/dist/queries/common.js +109 -0
- package/dist/queries/cycles.d.ts +2 -0
- package/dist/queries/cycles.js +40 -0
- package/dist/queries/documents.d.ts +5 -0
- package/dist/queries/documents.js +67 -0
- package/dist/queries/introspect.d.ts +2 -0
- package/dist/queries/introspect.js +24 -0
- package/dist/queries/issues.d.ts +23 -0
- package/dist/queries/issues.js +380 -0
- package/dist/queries/labels.d.ts +4 -0
- package/dist/queries/labels.js +53 -0
- package/dist/queries/project-milestones.d.ts +6 -0
- package/dist/queries/project-milestones.js +125 -0
- package/dist/queries/projects.d.ts +7 -0
- package/dist/queries/projects.js +104 -0
- package/dist/queries/releases.d.ts +4 -0
- package/dist/queries/releases.js +85 -0
- package/dist/queries/search.d.ts +1 -0
- package/dist/queries/search.js +35 -0
- package/dist/queries/templates.d.ts +2 -0
- package/dist/queries/templates.js +30 -0
- package/dist/types/linear.d.ts +217 -0
- package/dist/types/linear.js +6 -0
- package/dist/utils/auth.d.ts +4 -0
- package/dist/utils/auth.js +23 -0
- package/dist/utils/auto-link-references.d.ts +47 -0
- package/dist/utils/auto-link-references.js +188 -0
- package/dist/utils/date-format.d.ts +4 -0
- package/dist/utils/date-format.js +8 -0
- package/dist/utils/download-uploads.d.ts +7 -0
- package/dist/utils/download-uploads.js +88 -0
- package/dist/utils/embed-parser.d.ts +8 -0
- package/dist/utils/embed-parser.js +54 -0
- package/dist/utils/error-messages.d.ts +4 -0
- package/dist/utils/error-messages.js +17 -0
- package/dist/utils/file-service.d.ts +13 -0
- package/dist/utils/file-service.js +239 -0
- package/dist/utils/gdoc-parser.d.ts +45 -0
- package/dist/utils/gdoc-parser.js +107 -0
- package/dist/utils/graphql-attachments-service.d.ts +12 -0
- package/dist/utils/graphql-attachments-service.js +46 -0
- package/dist/utils/graphql-documents-service.d.ts +18 -0
- package/dist/utils/graphql-documents-service.js +97 -0
- package/dist/utils/graphql-issues-service.d.ts +49 -0
- package/dist/utils/graphql-issues-service.js +925 -0
- package/dist/utils/graphql-service.d.ts +8 -0
- package/dist/utils/graphql-service.js +35 -0
- package/dist/utils/identifier-parser.d.ts +7 -0
- package/dist/utils/identifier-parser.js +20 -0
- package/dist/utils/issue-reference-extractor.d.ts +18 -0
- package/dist/utils/issue-reference-extractor.js +95 -0
- package/dist/utils/issue-reference-wrapper.d.ts +12 -0
- package/dist/utils/issue-reference-wrapper.js +91 -0
- package/dist/utils/linear-service.d.ts +26 -0
- package/dist/utils/linear-service.js +442 -0
- package/dist/utils/logger.d.ts +4 -0
- package/dist/utils/logger.js +8 -0
- package/dist/utils/markdown-prosemirror.d.ts +24 -0
- package/dist/utils/markdown-prosemirror.js +325 -0
- package/dist/utils/mention-resolver.d.ts +31 -0
- package/dist/utils/mention-resolver.js +234 -0
- package/dist/utils/output.d.ts +7 -0
- package/dist/utils/output.js +125 -0
- package/dist/utils/table-formatter.d.ts +4 -0
- package/dist/utils/table-formatter.js +249 -0
- package/dist/utils/usage.d.ts +2 -0
- package/dist/utils/usage.js +24 -0
- package/dist/utils/uuid.d.ts +2 -0
- package/dist/utils/uuid.js +8 -0
- package/dist/utils/validate-references.d.ts +10 -0
- package/dist/utils/validate-references.js +33 -0
- package/dist/utils/validators.d.ts +7 -0
- package/dist/utils/validators.js +71 -0
- package/dist/utils/workspace-url.d.ts +4 -0
- package/dist/utils/workspace-url.js +44 -0
- package/package.json +71 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import { COMPLETE_ISSUE_FRAGMENT, COMPLETE_ISSUE_WITH_COMMENTS_FRAGMENT, } from "./common.js";
|
|
2
|
+
export const GET_ISSUES_QUERY = `
|
|
3
|
+
query GetIssues($first: Int!, $orderBy: PaginationOrderBy) {
|
|
4
|
+
issues(
|
|
5
|
+
first: $first
|
|
6
|
+
orderBy: $orderBy
|
|
7
|
+
filter: {
|
|
8
|
+
state: { type: { neq: "completed" } }
|
|
9
|
+
}
|
|
10
|
+
) {
|
|
11
|
+
nodes {
|
|
12
|
+
${COMPLETE_ISSUE_FRAGMENT}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
export const SEARCH_ISSUES_QUERY = `
|
|
18
|
+
query SearchIssues($term: String!, $first: Int!) {
|
|
19
|
+
searchIssues(term: $term, first: $first, includeArchived: false) {
|
|
20
|
+
nodes {
|
|
21
|
+
${COMPLETE_ISSUE_FRAGMENT}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
export const FILTERED_SEARCH_ISSUES_QUERY = `
|
|
27
|
+
query FilteredSearchIssues(
|
|
28
|
+
$first: Int!
|
|
29
|
+
$filter: IssueFilter
|
|
30
|
+
$orderBy: PaginationOrderBy
|
|
31
|
+
) {
|
|
32
|
+
issues(
|
|
33
|
+
first: $first
|
|
34
|
+
filter: $filter
|
|
35
|
+
orderBy: $orderBy
|
|
36
|
+
includeArchived: false
|
|
37
|
+
) {
|
|
38
|
+
nodes {
|
|
39
|
+
${COMPLETE_ISSUE_FRAGMENT}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
export const BATCH_RESOLVE_FOR_SEARCH_QUERY = `
|
|
45
|
+
query BatchResolveForSearch(
|
|
46
|
+
$teamKey: String
|
|
47
|
+
$teamName: String
|
|
48
|
+
$projectName: String
|
|
49
|
+
$assigneeEmail: String
|
|
50
|
+
) {
|
|
51
|
+
teams(
|
|
52
|
+
filter: {
|
|
53
|
+
or: [
|
|
54
|
+
{ key: { eq: $teamKey } }
|
|
55
|
+
{ name: { eqIgnoreCase: $teamName } }
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
first: 1
|
|
59
|
+
) {
|
|
60
|
+
nodes {
|
|
61
|
+
id
|
|
62
|
+
key
|
|
63
|
+
name
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
projects(filter: { name: { eqIgnoreCase: $projectName } }, first: 1) {
|
|
68
|
+
nodes {
|
|
69
|
+
id
|
|
70
|
+
name
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
users(filter: { email: { eq: $assigneeEmail } }, first: 1) {
|
|
75
|
+
nodes {
|
|
76
|
+
id
|
|
77
|
+
name
|
|
78
|
+
email
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
export const GET_ISSUE_BY_ID_QUERY = `
|
|
84
|
+
query GetIssue($id: String!) {
|
|
85
|
+
issue(id: $id) {
|
|
86
|
+
${COMPLETE_ISSUE_WITH_COMMENTS_FRAGMENT}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
`;
|
|
90
|
+
export const GET_ISSUE_BY_IDENTIFIER_QUERY = `
|
|
91
|
+
query GetIssueByIdentifier($teamKey: String!, $number: Float!) {
|
|
92
|
+
issues(
|
|
93
|
+
filter: {
|
|
94
|
+
team: { key: { eq: $teamKey } }
|
|
95
|
+
number: { eq: $number }
|
|
96
|
+
}
|
|
97
|
+
first: 1
|
|
98
|
+
) {
|
|
99
|
+
nodes {
|
|
100
|
+
${COMPLETE_ISSUE_WITH_COMMENTS_FRAGMENT}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
`;
|
|
105
|
+
export const BATCH_RESOLVE_FOR_UPDATE_QUERY = `
|
|
106
|
+
query BatchResolveForUpdate(
|
|
107
|
+
$projectName: String
|
|
108
|
+
$teamKey: String
|
|
109
|
+
$issueNumber: Float
|
|
110
|
+
$milestoneName: String
|
|
111
|
+
) {
|
|
112
|
+
projects(filter: { name: { eqIgnoreCase: $projectName } }, first: 1) {
|
|
113
|
+
nodes {
|
|
114
|
+
id
|
|
115
|
+
name
|
|
116
|
+
projectMilestones {
|
|
117
|
+
nodes {
|
|
118
|
+
id
|
|
119
|
+
name
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
milestones: projectMilestones(
|
|
126
|
+
filter: { name: { eq: $milestoneName } }
|
|
127
|
+
first: 1
|
|
128
|
+
) {
|
|
129
|
+
nodes {
|
|
130
|
+
id
|
|
131
|
+
name
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
issues(
|
|
136
|
+
filter: {
|
|
137
|
+
and: [
|
|
138
|
+
{ team: { key: { eq: $teamKey } } }
|
|
139
|
+
{ number: { eq: $issueNumber } }
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
first: 1
|
|
143
|
+
) {
|
|
144
|
+
nodes {
|
|
145
|
+
id
|
|
146
|
+
identifier
|
|
147
|
+
team {
|
|
148
|
+
id
|
|
149
|
+
key
|
|
150
|
+
}
|
|
151
|
+
labels {
|
|
152
|
+
nodes {
|
|
153
|
+
id
|
|
154
|
+
name
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
project {
|
|
158
|
+
id
|
|
159
|
+
projectMilestones {
|
|
160
|
+
nodes {
|
|
161
|
+
id
|
|
162
|
+
name
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
`;
|
|
170
|
+
export const CREATE_ISSUE_MUTATION = `
|
|
171
|
+
mutation CreateIssue($input: IssueCreateInput!) {
|
|
172
|
+
issueCreate(input: $input) {
|
|
173
|
+
success
|
|
174
|
+
issue {
|
|
175
|
+
${COMPLETE_ISSUE_FRAGMENT}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
`;
|
|
180
|
+
export const UPDATE_ISSUE_MUTATION = `
|
|
181
|
+
mutation UpdateIssue($id: String!, $input: IssueUpdateInput!) {
|
|
182
|
+
issueUpdate(id: $id, input: $input) {
|
|
183
|
+
success
|
|
184
|
+
issue {
|
|
185
|
+
${COMPLETE_ISSUE_FRAGMENT}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
`;
|
|
190
|
+
export const BATCH_RESOLVE_FOR_CREATE_QUERY = `
|
|
191
|
+
query BatchResolveForCreate(
|
|
192
|
+
$teamKey: String
|
|
193
|
+
$teamName: String
|
|
194
|
+
$projectName: String
|
|
195
|
+
$parentTeamKey: String
|
|
196
|
+
$parentIssueNumber: Float
|
|
197
|
+
$milestoneName: String
|
|
198
|
+
) {
|
|
199
|
+
teams(
|
|
200
|
+
filter: {
|
|
201
|
+
or: [
|
|
202
|
+
{ key: { eq: $teamKey } }
|
|
203
|
+
{ name: { eqIgnoreCase: $teamName } }
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
first: 1
|
|
207
|
+
) {
|
|
208
|
+
nodes {
|
|
209
|
+
id
|
|
210
|
+
key
|
|
211
|
+
name
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
projects(filter: { name: { eqIgnoreCase: $projectName } }, first: 1) {
|
|
216
|
+
nodes {
|
|
217
|
+
id
|
|
218
|
+
name
|
|
219
|
+
teams {
|
|
220
|
+
nodes { id key }
|
|
221
|
+
}
|
|
222
|
+
projectMilestones {
|
|
223
|
+
nodes { id name }
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
milestones: projectMilestones(
|
|
229
|
+
filter: { name: { eq: $milestoneName } }
|
|
230
|
+
first: 1
|
|
231
|
+
) {
|
|
232
|
+
nodes {
|
|
233
|
+
id
|
|
234
|
+
name
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
parentIssues: issues(
|
|
239
|
+
filter: {
|
|
240
|
+
and: [
|
|
241
|
+
{ team: { key: { eq: $parentTeamKey } } }
|
|
242
|
+
{ number: { eq: $parentIssueNumber } }
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
first: 1
|
|
246
|
+
) {
|
|
247
|
+
nodes {
|
|
248
|
+
id
|
|
249
|
+
identifier
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
`;
|
|
254
|
+
/**
|
|
255
|
+
* Build a label-resolution query filtered by names (case-insensitive).
|
|
256
|
+
* Uses `or` + `eqIgnoreCase` since Linear's `in` filter may be case-sensitive.
|
|
257
|
+
*/
|
|
258
|
+
export function buildResolveLabelsByNameQuery(labelNames) {
|
|
259
|
+
const varDecls = labelNames.map((_, i) => `$label${i}: String!`).join(", ");
|
|
260
|
+
const filterConditions = labelNames
|
|
261
|
+
.map((_, i) => `{ name: { eqIgnoreCase: $label${i} } }`)
|
|
262
|
+
.join("\n ");
|
|
263
|
+
const variables = {};
|
|
264
|
+
for (let i = 0; i < labelNames.length; i++) {
|
|
265
|
+
variables[`label${i}`] = labelNames[i];
|
|
266
|
+
}
|
|
267
|
+
const query = `
|
|
268
|
+
query ResolveLabels(${varDecls}) {
|
|
269
|
+
labels: issueLabels(
|
|
270
|
+
filter: {
|
|
271
|
+
or: [
|
|
272
|
+
${filterConditions}
|
|
273
|
+
]
|
|
274
|
+
}
|
|
275
|
+
first: 50
|
|
276
|
+
) {
|
|
277
|
+
nodes {
|
|
278
|
+
id
|
|
279
|
+
name
|
|
280
|
+
isGroup
|
|
281
|
+
team {
|
|
282
|
+
id
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
`;
|
|
288
|
+
return { query, variables };
|
|
289
|
+
}
|
|
290
|
+
export const GET_ISSUE_STATE_HISTORY_QUERY = `
|
|
291
|
+
query GetIssueStateHistory($id: String!) {
|
|
292
|
+
issue(id: $id) {
|
|
293
|
+
id
|
|
294
|
+
identifier
|
|
295
|
+
title
|
|
296
|
+
stateHistory {
|
|
297
|
+
nodes {
|
|
298
|
+
state { id name type }
|
|
299
|
+
startedAt
|
|
300
|
+
endedAt
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
`;
|
|
306
|
+
export const GET_ISSUE_TEAM_QUERY = `
|
|
307
|
+
query GetIssueTeam($issueId: String!) {
|
|
308
|
+
issue(id: $issueId) {
|
|
309
|
+
team { id }
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
`;
|
|
313
|
+
export const ISSUE_RELATION_CREATE_MUTATION = `
|
|
314
|
+
mutation IssueRelationCreate($input: IssueRelationCreateInput!) {
|
|
315
|
+
issueRelationCreate(input: $input) {
|
|
316
|
+
success
|
|
317
|
+
issueRelation {
|
|
318
|
+
id
|
|
319
|
+
type
|
|
320
|
+
issue {
|
|
321
|
+
id
|
|
322
|
+
identifier
|
|
323
|
+
title
|
|
324
|
+
}
|
|
325
|
+
relatedIssue {
|
|
326
|
+
id
|
|
327
|
+
identifier
|
|
328
|
+
title
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
`;
|
|
334
|
+
export const GET_ISSUE_RELATIONS_QUERY = `
|
|
335
|
+
query GetIssueRelations($id: String!) {
|
|
336
|
+
issue(id: $id) {
|
|
337
|
+
id
|
|
338
|
+
identifier
|
|
339
|
+
title
|
|
340
|
+
description
|
|
341
|
+
relations {
|
|
342
|
+
nodes {
|
|
343
|
+
id
|
|
344
|
+
type
|
|
345
|
+
relatedIssue {
|
|
346
|
+
id
|
|
347
|
+
identifier
|
|
348
|
+
title
|
|
349
|
+
state { id name }
|
|
350
|
+
priority
|
|
351
|
+
assignee { id name }
|
|
352
|
+
team { id key name }
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
inverseRelations {
|
|
357
|
+
nodes {
|
|
358
|
+
id
|
|
359
|
+
type
|
|
360
|
+
issue {
|
|
361
|
+
id
|
|
362
|
+
identifier
|
|
363
|
+
title
|
|
364
|
+
state { id name }
|
|
365
|
+
priority
|
|
366
|
+
assignee { id name }
|
|
367
|
+
team { id key name }
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
`;
|
|
374
|
+
export const SCAN_ISSUES_QUERY = `
|
|
375
|
+
query ScanIssues($filter: IssueFilter, $first: Int) {
|
|
376
|
+
issues(filter: $filter, first: $first, orderBy: updatedAt) {
|
|
377
|
+
nodes { id identifier description }
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
`;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const FIND_PARENT_LABEL_QUERY = "\n query FindParentLabel($name: String!, $teamId: ID!) {\n issueLabels(filter: {\n and: [\n { name: { eq: $name } }\n { team: { id: { eq: $teamId } } }\n ]\n }, first: 1) {\n nodes { id name isGroup }\n }\n }\n";
|
|
2
|
+
export declare const CREATE_LABEL_MUTATION = "\n mutation CreateLabel($input: IssueLabelCreateInput!) {\n issueLabelCreate(input: $input) {\n success\n issueLabel {\n id\n name\n color\n team { id key name }\n parent { id name }\n }\n }\n }\n";
|
|
3
|
+
export declare const RETIRE_LABEL_MUTATION = "\n mutation RetireLabel($id: String!) {\n issueLabelRetire(id: $id) {\n success\n issueLabel {\n id\n name\n color\n retiredAt\n team { id key name }\n }\n }\n }\n";
|
|
4
|
+
export declare const RESTORE_LABEL_MUTATION = "\n mutation RestoreLabel($id: String!) {\n issueLabelRestore(id: $id) {\n success\n issueLabel {\n id\n name\n color\n team { id key name }\n }\n }\n }\n";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const FIND_PARENT_LABEL_QUERY = `
|
|
2
|
+
query FindParentLabel($name: String!, $teamId: ID!) {
|
|
3
|
+
issueLabels(filter: {
|
|
4
|
+
and: [
|
|
5
|
+
{ name: { eq: $name } }
|
|
6
|
+
{ team: { id: { eq: $teamId } } }
|
|
7
|
+
]
|
|
8
|
+
}, first: 1) {
|
|
9
|
+
nodes { id name isGroup }
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
export const CREATE_LABEL_MUTATION = `
|
|
14
|
+
mutation CreateLabel($input: IssueLabelCreateInput!) {
|
|
15
|
+
issueLabelCreate(input: $input) {
|
|
16
|
+
success
|
|
17
|
+
issueLabel {
|
|
18
|
+
id
|
|
19
|
+
name
|
|
20
|
+
color
|
|
21
|
+
team { id key name }
|
|
22
|
+
parent { id name }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
export const RETIRE_LABEL_MUTATION = `
|
|
28
|
+
mutation RetireLabel($id: String!) {
|
|
29
|
+
issueLabelRetire(id: $id) {
|
|
30
|
+
success
|
|
31
|
+
issueLabel {
|
|
32
|
+
id
|
|
33
|
+
name
|
|
34
|
+
color
|
|
35
|
+
retiredAt
|
|
36
|
+
team { id key name }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
export const RESTORE_LABEL_MUTATION = `
|
|
42
|
+
mutation RestoreLabel($id: String!) {
|
|
43
|
+
issueLabelRestore(id: $id) {
|
|
44
|
+
success
|
|
45
|
+
issueLabel {
|
|
46
|
+
id
|
|
47
|
+
name
|
|
48
|
+
color
|
|
49
|
+
team { id key name }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const LIST_PROJECT_MILESTONES_QUERY = "\n query ListProjectMilestones($projectId: String!, $first: Int!) {\n project(id: $projectId) {\n id\n name\n projectMilestones(first: $first) {\n nodes {\n id\n name\n description\n targetDate\n sortOrder\n createdAt\n updatedAt\n }\n }\n }\n }\n";
|
|
2
|
+
export declare const GET_PROJECT_MILESTONE_BY_ID_QUERY = "\n query GetProjectMilestone($id: String!, $issuesFirst: Int) {\n projectMilestone(id: $id) {\n id\n name\n description\n targetDate\n sortOrder\n createdAt\n updatedAt\n project {\n id\n name\n }\n issues(first: $issuesFirst) {\n nodes {\n \n \n id\n identifier\n title\n description\n summary { content generationStatus }\n branchName\n priority\n estimate\n dueDate\n url\n createdAt\n updatedAt\n\n \n state {\n id\n name\n }\n\n \n assignee {\n id\n name\n url\n }\n\n \n team {\n id\n key\n name\n }\n\n \n project {\n id\n name\n }\n\n \n labels {\n nodes {\n id\n name\n }\n }\n\n \n cycle {\n id\n name\n number\n }\n\n \n projectMilestone {\n id\n name\n targetDate\n }\n\n \n parent {\n id\n identifier\n title\n }\n\n \n children {\n nodes {\n id\n identifier\n title\n }\n }\n\n\n }\n }\n }\n }\n";
|
|
3
|
+
export declare const FIND_PROJECT_MILESTONE_BY_NAME_SCOPED = "\n query FindProjectMilestoneScoped($name: String!, $projectId: String!) {\n project(id: $projectId) {\n projectMilestones(filter: { name: { eq: $name } }, first: 10) {\n nodes {\n id\n name\n targetDate\n sortOrder\n project {\n id\n name\n }\n }\n }\n }\n }\n";
|
|
4
|
+
export declare const FIND_PROJECT_MILESTONE_BY_NAME_GLOBAL = "\n query FindProjectMilestoneGlobal($name: String!) {\n projectMilestones(filter: { name: { eq: $name } }, first: 10) {\n nodes {\n id\n name\n targetDate\n sortOrder\n project {\n id\n name\n }\n }\n }\n }\n";
|
|
5
|
+
export declare const CREATE_PROJECT_MILESTONE_MUTATION = "\n mutation CreateProjectMilestone($projectId: String!, $name: String!, $description: String, $targetDate: TimelessDate) {\n projectMilestoneCreate(input: {\n projectId: $projectId\n name: $name\n description: $description\n targetDate: $targetDate\n }) {\n success\n projectMilestone {\n id\n name\n description\n targetDate\n sortOrder\n createdAt\n updatedAt\n project {\n id\n name\n }\n }\n }\n }\n";
|
|
6
|
+
export declare const UPDATE_PROJECT_MILESTONE_MUTATION = "\n mutation UpdateProjectMilestone($id: String!, $name: String, $description: String, $targetDate: TimelessDate, $sortOrder: Float) {\n projectMilestoneUpdate(id: $id, input: {\n name: $name\n description: $description\n targetDate: $targetDate\n sortOrder: $sortOrder\n }) {\n success\n projectMilestone {\n id\n name\n description\n targetDate\n sortOrder\n updatedAt\n project {\n id\n name\n }\n }\n }\n }\n";
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { COMPLETE_ISSUE_FRAGMENT } from "./common.js";
|
|
2
|
+
export const LIST_PROJECT_MILESTONES_QUERY = `
|
|
3
|
+
query ListProjectMilestones($projectId: String!, $first: Int!) {
|
|
4
|
+
project(id: $projectId) {
|
|
5
|
+
id
|
|
6
|
+
name
|
|
7
|
+
projectMilestones(first: $first) {
|
|
8
|
+
nodes {
|
|
9
|
+
id
|
|
10
|
+
name
|
|
11
|
+
description
|
|
12
|
+
targetDate
|
|
13
|
+
sortOrder
|
|
14
|
+
createdAt
|
|
15
|
+
updatedAt
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
21
|
+
export const GET_PROJECT_MILESTONE_BY_ID_QUERY = `
|
|
22
|
+
query GetProjectMilestone($id: String!, $issuesFirst: Int) {
|
|
23
|
+
projectMilestone(id: $id) {
|
|
24
|
+
id
|
|
25
|
+
name
|
|
26
|
+
description
|
|
27
|
+
targetDate
|
|
28
|
+
sortOrder
|
|
29
|
+
createdAt
|
|
30
|
+
updatedAt
|
|
31
|
+
project {
|
|
32
|
+
id
|
|
33
|
+
name
|
|
34
|
+
}
|
|
35
|
+
issues(first: $issuesFirst) {
|
|
36
|
+
nodes {
|
|
37
|
+
${COMPLETE_ISSUE_FRAGMENT}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
export const FIND_PROJECT_MILESTONE_BY_NAME_SCOPED = `
|
|
44
|
+
query FindProjectMilestoneScoped($name: String!, $projectId: String!) {
|
|
45
|
+
project(id: $projectId) {
|
|
46
|
+
projectMilestones(filter: { name: { eq: $name } }, first: 10) {
|
|
47
|
+
nodes {
|
|
48
|
+
id
|
|
49
|
+
name
|
|
50
|
+
targetDate
|
|
51
|
+
sortOrder
|
|
52
|
+
project {
|
|
53
|
+
id
|
|
54
|
+
name
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
export const FIND_PROJECT_MILESTONE_BY_NAME_GLOBAL = `
|
|
62
|
+
query FindProjectMilestoneGlobal($name: String!) {
|
|
63
|
+
projectMilestones(filter: { name: { eq: $name } }, first: 10) {
|
|
64
|
+
nodes {
|
|
65
|
+
id
|
|
66
|
+
name
|
|
67
|
+
targetDate
|
|
68
|
+
sortOrder
|
|
69
|
+
project {
|
|
70
|
+
id
|
|
71
|
+
name
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
77
|
+
export const CREATE_PROJECT_MILESTONE_MUTATION = `
|
|
78
|
+
mutation CreateProjectMilestone($projectId: String!, $name: String!, $description: String, $targetDate: TimelessDate) {
|
|
79
|
+
projectMilestoneCreate(input: {
|
|
80
|
+
projectId: $projectId
|
|
81
|
+
name: $name
|
|
82
|
+
description: $description
|
|
83
|
+
targetDate: $targetDate
|
|
84
|
+
}) {
|
|
85
|
+
success
|
|
86
|
+
projectMilestone {
|
|
87
|
+
id
|
|
88
|
+
name
|
|
89
|
+
description
|
|
90
|
+
targetDate
|
|
91
|
+
sortOrder
|
|
92
|
+
createdAt
|
|
93
|
+
updatedAt
|
|
94
|
+
project {
|
|
95
|
+
id
|
|
96
|
+
name
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
`;
|
|
102
|
+
export const UPDATE_PROJECT_MILESTONE_MUTATION = `
|
|
103
|
+
mutation UpdateProjectMilestone($id: String!, $name: String, $description: String, $targetDate: TimelessDate, $sortOrder: Float) {
|
|
104
|
+
projectMilestoneUpdate(id: $id, input: {
|
|
105
|
+
name: $name
|
|
106
|
+
description: $description
|
|
107
|
+
targetDate: $targetDate
|
|
108
|
+
sortOrder: $sortOrder
|
|
109
|
+
}) {
|
|
110
|
+
success
|
|
111
|
+
projectMilestone {
|
|
112
|
+
id
|
|
113
|
+
name
|
|
114
|
+
description
|
|
115
|
+
targetDate
|
|
116
|
+
sortOrder
|
|
117
|
+
updatedAt
|
|
118
|
+
project {
|
|
119
|
+
id
|
|
120
|
+
name
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
`;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const TEAM_LOOKUP_QUERY = "\n query TeamLookup($key: String) {\n teams(filter: { or: [{ key: { eq: $key } }, { name: { eq: $key } }] }, first: 1) {\n nodes { id key name }\n }\n }\n";
|
|
2
|
+
export declare const PROJECT_BY_ID_QUERY = "\n query ProjectById($id: String!) {\n project(id: $id) {\n id\n name\n teams {\n nodes { id key name }\n }\n }\n }\n";
|
|
3
|
+
export declare const GET_PROJECT_QUERY = "\n query GetProject($name: String!) {\n projects(filter: { name: { eqIgnoreCase: $name } }, first: 1) {\n nodes {\n id\n name\n teams {\n nodes {\n id\n key\n name\n }\n }\n }\n }\n }\n";
|
|
4
|
+
export declare const GET_PROJECT_TEAM_ISSUES_QUERY = "\n query GetProjectTeamIssues($projectId: String!, $teamId: String!) {\n project(id: $projectId) {\n id\n name\n teams {\n nodes {\n id\n key\n name\n }\n }\n issues(filter: { team: { id: { eq: $teamId } } }, first: 50) {\n nodes {\n id\n identifier\n title\n }\n }\n }\n }\n";
|
|
5
|
+
export declare const SEARCH_PROJECTS_BY_NAME_QUERY = "\n query SearchProjectsByName($name: String!) {\n projects(filter: { name: { containsIgnoreCase: $name } }, first: 10) {\n nodes {\n id\n name\n state\n teams {\n nodes { id key name }\n }\n }\n }\n }\n";
|
|
6
|
+
export declare const CREATE_PROJECT_MUTATION = "\n mutation CreateProject($input: ProjectCreateInput!) {\n projectCreate(input: $input) {\n success\n project {\n id\n name\n state\n teams {\n nodes { id key name }\n }\n }\n }\n }\n";
|
|
7
|
+
export declare const UPDATE_PROJECT_MUTATION = "\n mutation UpdateProject($id: String!, $input: ProjectUpdateInput!) {\n projectUpdate(id: $id, input: $input) {\n success\n project {\n id\n name\n teams {\n nodes {\n id\n key\n name\n }\n }\n }\n }\n }\n";
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
export const TEAM_LOOKUP_QUERY = `
|
|
2
|
+
query TeamLookup($key: String) {
|
|
3
|
+
teams(filter: { or: [{ key: { eq: $key } }, { name: { eq: $key } }] }, first: 1) {
|
|
4
|
+
nodes { id key name }
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
`;
|
|
8
|
+
export const PROJECT_BY_ID_QUERY = `
|
|
9
|
+
query ProjectById($id: String!) {
|
|
10
|
+
project(id: $id) {
|
|
11
|
+
id
|
|
12
|
+
name
|
|
13
|
+
teams {
|
|
14
|
+
nodes { id key name }
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
export const GET_PROJECT_QUERY = `
|
|
20
|
+
query GetProject($name: String!) {
|
|
21
|
+
projects(filter: { name: { eqIgnoreCase: $name } }, first: 1) {
|
|
22
|
+
nodes {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
teams {
|
|
26
|
+
nodes {
|
|
27
|
+
id
|
|
28
|
+
key
|
|
29
|
+
name
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
export const GET_PROJECT_TEAM_ISSUES_QUERY = `
|
|
37
|
+
query GetProjectTeamIssues($projectId: String!, $teamId: String!) {
|
|
38
|
+
project(id: $projectId) {
|
|
39
|
+
id
|
|
40
|
+
name
|
|
41
|
+
teams {
|
|
42
|
+
nodes {
|
|
43
|
+
id
|
|
44
|
+
key
|
|
45
|
+
name
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
issues(filter: { team: { id: { eq: $teamId } } }, first: 50) {
|
|
49
|
+
nodes {
|
|
50
|
+
id
|
|
51
|
+
identifier
|
|
52
|
+
title
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
export const SEARCH_PROJECTS_BY_NAME_QUERY = `
|
|
59
|
+
query SearchProjectsByName($name: String!) {
|
|
60
|
+
projects(filter: { name: { containsIgnoreCase: $name } }, first: 10) {
|
|
61
|
+
nodes {
|
|
62
|
+
id
|
|
63
|
+
name
|
|
64
|
+
state
|
|
65
|
+
teams {
|
|
66
|
+
nodes { id key name }
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
`;
|
|
72
|
+
export const CREATE_PROJECT_MUTATION = `
|
|
73
|
+
mutation CreateProject($input: ProjectCreateInput!) {
|
|
74
|
+
projectCreate(input: $input) {
|
|
75
|
+
success
|
|
76
|
+
project {
|
|
77
|
+
id
|
|
78
|
+
name
|
|
79
|
+
state
|
|
80
|
+
teams {
|
|
81
|
+
nodes { id key name }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
export const UPDATE_PROJECT_MUTATION = `
|
|
88
|
+
mutation UpdateProject($id: String!, $input: ProjectUpdateInput!) {
|
|
89
|
+
projectUpdate(id: $id, input: $input) {
|
|
90
|
+
success
|
|
91
|
+
project {
|
|
92
|
+
id
|
|
93
|
+
name
|
|
94
|
+
teams {
|
|
95
|
+
nodes {
|
|
96
|
+
id
|
|
97
|
+
key
|
|
98
|
+
name
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
`;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const GET_RELEASES_QUERY = "\n query GetReleases($first: Int!, $filter: ReleaseFilter) {\n releases(first: $first, filter: $filter) {\n nodes {\n id\n name\n description\n version\n url\n startDate\n targetDate\n startedAt\n completedAt\n canceledAt\n stage { id name type color }\n pipeline { id name }\n createdAt\n updatedAt\n }\n }\n }\n";
|
|
2
|
+
export declare const GET_RELEASE_BY_ID_QUERY = "\n query GetReleaseById($id: String!) {\n release(id: $id) {\n id\n name\n description\n version\n url\n startDate\n targetDate\n startedAt\n completedAt\n canceledAt\n stage { id name type color }\n pipeline { id name }\n documents {\n nodes {\n id\n title\n slugId\n }\n }\n createdAt\n updatedAt\n }\n }\n";
|
|
3
|
+
export declare const CREATE_RELEASE_MUTATION = "\n mutation CreateRelease($input: ReleaseCreateInput!) {\n releaseCreate(input: $input) {\n success\n release {\n id\n name\n description\n version\n url\n stage { id name type color }\n pipeline { id name }\n createdAt\n updatedAt\n }\n }\n }\n";
|
|
4
|
+
export declare const GET_RELEASE_PIPELINES_QUERY = "\n query GetReleasePipelines($first: Int!) {\n releasePipelines(first: $first) {\n nodes {\n id\n name\n stages {\n nodes {\n id\n name\n type\n color\n }\n }\n }\n }\n }\n";
|