@pipedream/linear_app 0.8.3 → 0.9.1
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/actions/create-comment/create-comment.mjs +52 -0
- package/actions/create-initiative/create-initiative.mjs +76 -0
- package/actions/create-issue/create-issue.mjs +1 -1
- package/actions/create-project/create-project.mjs +1 -1
- package/actions/get-issue/get-issue.mjs +1 -1
- package/actions/get-teams/get-teams.mjs +1 -1
- package/actions/get-view-issues/get-view-issues.mjs +54 -0
- package/actions/list-comments/list-comments.mjs +88 -0
- package/actions/list-initiatives/list-initiatives.mjs +73 -0
- package/actions/list-projects/list-projects.mjs +1 -1
- package/actions/list-views/list-views.mjs +70 -0
- package/actions/remove-label-from-issue/remove-label-from-issue.mjs +54 -0
- package/actions/search-issues/search-issues.mjs +1 -1
- package/actions/update-initiative/update-initiative.mjs +60 -0
- package/actions/update-issue/update-issue.mjs +1 -1
- package/linear_app.app.mjs +72 -0
- package/package.json +1 -1
- package/sources/comment-created-instant/comment-created-instant.mjs +1 -1
- package/sources/issue-created-instant/issue-created-instant.mjs +1 -1
- package/sources/issue-updated-instant/issue-updated-instant.mjs +1 -1
- package/sources/new-issue-status-updated/new-issue-status-updated.mjs +1 -1
- package/sources/new-projectupdate-created/new-projectupdate-created.mjs +1 -1
- package/sources/project-updated-instant/project-updated-instant.mjs +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-create-comment",
|
|
5
|
+
name: "Create Comment",
|
|
6
|
+
description: "Create a comment in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Mutation?query=comment)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: false,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
teamId: {
|
|
17
|
+
propDefinition: [
|
|
18
|
+
linearApp,
|
|
19
|
+
"teamId",
|
|
20
|
+
],
|
|
21
|
+
description: "Filter issue selection by team",
|
|
22
|
+
optional: true,
|
|
23
|
+
},
|
|
24
|
+
issueId: {
|
|
25
|
+
propDefinition: [
|
|
26
|
+
linearApp,
|
|
27
|
+
"issueId",
|
|
28
|
+
(c) => ({
|
|
29
|
+
teamId: c.teamId,
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
description: "The issue to create the comment on",
|
|
33
|
+
},
|
|
34
|
+
body: {
|
|
35
|
+
type: "string",
|
|
36
|
+
label: "Body",
|
|
37
|
+
description: "The body of the comment",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
async run({ $ }) {
|
|
41
|
+
const response = await this.linearApp.createComment({
|
|
42
|
+
issueId: this.issueId,
|
|
43
|
+
body: this.body,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
if (response?._comment) {
|
|
47
|
+
$.export("$summary", `Successfully created comment with ID ${response._comment.id}`);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return response;
|
|
51
|
+
},
|
|
52
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-create-initiative",
|
|
5
|
+
name: "Create Initiative",
|
|
6
|
+
description: "Create an initiative in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Mutation?query=initiativeCreate)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: false,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
name: {
|
|
17
|
+
type: "string",
|
|
18
|
+
label: "Name",
|
|
19
|
+
description: "The name of the initiative",
|
|
20
|
+
},
|
|
21
|
+
description: {
|
|
22
|
+
type: "string",
|
|
23
|
+
label: "Description",
|
|
24
|
+
description: "The description of the initiative",
|
|
25
|
+
optional: true,
|
|
26
|
+
},
|
|
27
|
+
content: {
|
|
28
|
+
type: "string",
|
|
29
|
+
label: "Content",
|
|
30
|
+
description: "The content of the initiative in markdown format",
|
|
31
|
+
optional: true,
|
|
32
|
+
},
|
|
33
|
+
status: {
|
|
34
|
+
propDefinition: [
|
|
35
|
+
linearApp,
|
|
36
|
+
"initiativeStatus",
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
color: {
|
|
40
|
+
type: "string",
|
|
41
|
+
label: "Color",
|
|
42
|
+
description: "The color of the initiative",
|
|
43
|
+
optional: true,
|
|
44
|
+
},
|
|
45
|
+
targetDate: {
|
|
46
|
+
propDefinition: [
|
|
47
|
+
linearApp,
|
|
48
|
+
"targetDate",
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
ownerId: {
|
|
52
|
+
propDefinition: [
|
|
53
|
+
linearApp,
|
|
54
|
+
"assigneeId",
|
|
55
|
+
],
|
|
56
|
+
label: "Owner",
|
|
57
|
+
description: "The user to assign to the initiative",
|
|
58
|
+
optional: true,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
async run({ $ }) {
|
|
62
|
+
const response = await this.linearApp.createInitiative({
|
|
63
|
+
name: this.name,
|
|
64
|
+
description: this.description,
|
|
65
|
+
content: this.content,
|
|
66
|
+
status: this.status,
|
|
67
|
+
color: this.color,
|
|
68
|
+
targetDate: this.targetDate,
|
|
69
|
+
ownerId: this.ownerId,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
$.export("$summary", `Successfully created initiative with ID ${response._initiative.id}`);
|
|
73
|
+
|
|
74
|
+
return response;
|
|
75
|
+
},
|
|
76
|
+
};
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
key: "linear_app-create-issue",
|
|
6
6
|
name: "Create Issue",
|
|
7
7
|
description: "Creates a new issue in Linear. Requires team ID and title. Optional: description, assignee, project, state. Returns response object with success status and issue details. Uses API Key authentication. [See the documentation](https://linear.app/developers/graphql#creating-and-editing-issues).",
|
|
8
|
-
version: "0.4.
|
|
8
|
+
version: "0.4.19",
|
|
9
9
|
annotations: {
|
|
10
10
|
destructiveHint: true,
|
|
11
11
|
openWorldHint: true,
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
name: "Create Project",
|
|
6
6
|
description: "Create a project in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/inputs/ProjectCreateInput).",
|
|
7
7
|
type: "action",
|
|
8
|
-
version: "0.0.
|
|
8
|
+
version: "0.0.5",
|
|
9
9
|
annotations: {
|
|
10
10
|
destructiveHint: false,
|
|
11
11
|
openWorldHint: true,
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
key: "linear_app-get-issue",
|
|
6
6
|
name: "Get Issue",
|
|
7
7
|
description: "Retrieves a Linear issue by its ID or identifier. Returns complete issue details including title, description, state, assignee, team, project, labels, and timestamps. Uses API Key authentication. [See the documentation](https://linear.app/developers/graphql).",
|
|
8
|
-
version: "0.1.
|
|
8
|
+
version: "0.1.19",
|
|
9
9
|
annotations: {
|
|
10
10
|
destructiveHint: false,
|
|
11
11
|
openWorldHint: true,
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
key: "linear_app-get-teams",
|
|
6
6
|
name: "Get Teams",
|
|
7
7
|
description: "Retrieves all teams in your Linear workspace. Returns array of team objects with details like ID, name, and key. Supports pagination with configurable limit. Uses API Key authentication. See Linear docs for additional info [here](https://linear.app/developers/graphql).",
|
|
8
|
-
version: "0.2.
|
|
8
|
+
version: "0.2.19",
|
|
9
9
|
annotations: {
|
|
10
10
|
destructiveHint: false,
|
|
11
11
|
openWorldHint: true,
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-get-view-issues",
|
|
5
|
+
name: "Get View Issues",
|
|
6
|
+
description: "Get issues from a custom view in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Query?query=customView)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: true,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
viewId: {
|
|
17
|
+
propDefinition: [
|
|
18
|
+
linearApp,
|
|
19
|
+
"customViewId",
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
orderBy: {
|
|
23
|
+
propDefinition: [
|
|
24
|
+
linearApp,
|
|
25
|
+
"orderBy",
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
first: {
|
|
29
|
+
type: "integer",
|
|
30
|
+
label: "First",
|
|
31
|
+
description: "The number of issues to return",
|
|
32
|
+
optional: true,
|
|
33
|
+
},
|
|
34
|
+
after: {
|
|
35
|
+
type: "string",
|
|
36
|
+
label: "After",
|
|
37
|
+
description: "The cursor to return the next page of issues",
|
|
38
|
+
optional: true,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
async run({ $ }) {
|
|
42
|
+
const { filterData } = await this.linearApp.getCustomView(this.viewId);
|
|
43
|
+
const response = await this.linearApp.listIssues({
|
|
44
|
+
filter: filterData,
|
|
45
|
+
orderBy: this.orderBy,
|
|
46
|
+
first: this.first,
|
|
47
|
+
after: this.after,
|
|
48
|
+
});
|
|
49
|
+
$.export("$summary", `Found ${response.nodes.length} issue${response.nodes.length === 1
|
|
50
|
+
? ""
|
|
51
|
+
: "s"}`);
|
|
52
|
+
return response;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-list-comments",
|
|
5
|
+
name: "List Comments",
|
|
6
|
+
description: "List comments in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Query?query=comments)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: true,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
teamId: {
|
|
17
|
+
propDefinition: [
|
|
18
|
+
linearApp,
|
|
19
|
+
"teamId",
|
|
20
|
+
],
|
|
21
|
+
description: "Filter issue selection by team",
|
|
22
|
+
optional: true,
|
|
23
|
+
},
|
|
24
|
+
issueId: {
|
|
25
|
+
propDefinition: [
|
|
26
|
+
linearApp,
|
|
27
|
+
"issueId",
|
|
28
|
+
(c) => ({
|
|
29
|
+
teamId: c.teamId,
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
description: "Filter results by issue",
|
|
33
|
+
optional: true,
|
|
34
|
+
},
|
|
35
|
+
body: {
|
|
36
|
+
type: "string",
|
|
37
|
+
label: "Body",
|
|
38
|
+
description: "Search for comments containing this text",
|
|
39
|
+
optional: true,
|
|
40
|
+
},
|
|
41
|
+
orderBy: {
|
|
42
|
+
propDefinition: [
|
|
43
|
+
linearApp,
|
|
44
|
+
"orderBy",
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
first: {
|
|
48
|
+
type: "integer",
|
|
49
|
+
label: "First",
|
|
50
|
+
description: "The number of comments to return",
|
|
51
|
+
optional: true,
|
|
52
|
+
},
|
|
53
|
+
after: {
|
|
54
|
+
type: "string",
|
|
55
|
+
label: "After",
|
|
56
|
+
description: "The cursor to return the next page of comments",
|
|
57
|
+
optional: true,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
async run({ $ }) {
|
|
61
|
+
const variables = {
|
|
62
|
+
filter: {
|
|
63
|
+
issue: {
|
|
64
|
+
id: {
|
|
65
|
+
eq: this.issueId,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
body: {
|
|
69
|
+
contains: this.body,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
orderBy: this.orderBy,
|
|
73
|
+
first: this.first,
|
|
74
|
+
after: this.after,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const {
|
|
78
|
+
nodes, pageInfo,
|
|
79
|
+
} = await this.linearApp.listComments(variables);
|
|
80
|
+
|
|
81
|
+
$.export("$summary", `Found ${nodes.length} comments`);
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
nodes,
|
|
85
|
+
pageInfo,
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-list-initiatives",
|
|
5
|
+
name: "List Initiatives",
|
|
6
|
+
description: "List initiatives in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Query?query=initiatives)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: true,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
name: {
|
|
17
|
+
type: "string",
|
|
18
|
+
label: "Name",
|
|
19
|
+
description: "Search for initiatives that contain the provided name",
|
|
20
|
+
optional: true,
|
|
21
|
+
},
|
|
22
|
+
status: {
|
|
23
|
+
propDefinition: [
|
|
24
|
+
linearApp,
|
|
25
|
+
"initiativeStatus",
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
orderBy: {
|
|
29
|
+
propDefinition: [
|
|
30
|
+
linearApp,
|
|
31
|
+
"orderBy",
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
first: {
|
|
35
|
+
type: "integer",
|
|
36
|
+
label: "First",
|
|
37
|
+
description: "The number of initiatives to return",
|
|
38
|
+
optional: true,
|
|
39
|
+
},
|
|
40
|
+
after: {
|
|
41
|
+
type: "string",
|
|
42
|
+
label: "After",
|
|
43
|
+
description: "The cursor to return the next page of initiatives",
|
|
44
|
+
optional: true,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
async run({ $ }) {
|
|
48
|
+
const variables = {
|
|
49
|
+
filter: {
|
|
50
|
+
name: {
|
|
51
|
+
contains: this.name,
|
|
52
|
+
},
|
|
53
|
+
status: {
|
|
54
|
+
eq: this.status,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
orderBy: this.orderBy,
|
|
58
|
+
first: this.first,
|
|
59
|
+
after: this.after,
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const {
|
|
63
|
+
nodes, pageInfo,
|
|
64
|
+
} = await this.linearApp.listInitiatives(variables);
|
|
65
|
+
|
|
66
|
+
$.export("$summary", `Found ${nodes.length} initiatives`);
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
nodes,
|
|
70
|
+
pageInfo,
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
};
|
|
@@ -6,7 +6,7 @@ export default {
|
|
|
6
6
|
name: "List Projects",
|
|
7
7
|
description: "List projects in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/ProjectConnection?query=projects).",
|
|
8
8
|
type: "action",
|
|
9
|
-
version: "0.0.
|
|
9
|
+
version: "0.0.5",
|
|
10
10
|
annotations: {
|
|
11
11
|
destructiveHint: false,
|
|
12
12
|
openWorldHint: true,
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-list-views",
|
|
5
|
+
name: "List Views",
|
|
6
|
+
description: "List views in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Query?query=views)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: true,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
teamId: {
|
|
17
|
+
propDefinition: [
|
|
18
|
+
linearApp,
|
|
19
|
+
"teamId",
|
|
20
|
+
],
|
|
21
|
+
description: "Filter views by team",
|
|
22
|
+
optional: true,
|
|
23
|
+
},
|
|
24
|
+
orderBy: {
|
|
25
|
+
propDefinition: [
|
|
26
|
+
linearApp,
|
|
27
|
+
"orderBy",
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
first: {
|
|
31
|
+
type: "integer",
|
|
32
|
+
label: "First",
|
|
33
|
+
description: "The number of views to return",
|
|
34
|
+
optional: true,
|
|
35
|
+
},
|
|
36
|
+
after: {
|
|
37
|
+
type: "string",
|
|
38
|
+
label: "After",
|
|
39
|
+
description: "The cursor to return the next page of views",
|
|
40
|
+
optional: true,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
async run({ $ }) {
|
|
44
|
+
const variables = {
|
|
45
|
+
filter: {
|
|
46
|
+
team: {
|
|
47
|
+
id: {
|
|
48
|
+
eq: this.teamId,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
orderBy: this.orderBy,
|
|
53
|
+
first: this.first,
|
|
54
|
+
after: this.after,
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const {
|
|
58
|
+
nodes, pageInfo,
|
|
59
|
+
} = await this.linearApp.listCustomViews(variables);
|
|
60
|
+
|
|
61
|
+
$.export("$summary", `Found ${nodes.length} view${nodes.length === 1
|
|
62
|
+
? ""
|
|
63
|
+
: "s"}`);
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
nodes,
|
|
67
|
+
pageInfo,
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-remove-label-from-issue",
|
|
5
|
+
name: "Remove Label from Issue",
|
|
6
|
+
description: "Remove a label from an issue in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Mutation?query=issueremovelabel)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: true,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: false,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
teamId: {
|
|
17
|
+
propDefinition: [
|
|
18
|
+
linearApp,
|
|
19
|
+
"teamId",
|
|
20
|
+
],
|
|
21
|
+
description: "Filter selected issues by team",
|
|
22
|
+
optional: true,
|
|
23
|
+
},
|
|
24
|
+
issueId: {
|
|
25
|
+
propDefinition: [
|
|
26
|
+
linearApp,
|
|
27
|
+
"issueId",
|
|
28
|
+
({ teamId }) => ({
|
|
29
|
+
teamId,
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
description: "The ID of the issue to remove the label from",
|
|
33
|
+
optional: false,
|
|
34
|
+
},
|
|
35
|
+
labelId: {
|
|
36
|
+
propDefinition: [
|
|
37
|
+
linearApp,
|
|
38
|
+
"issueLabels",
|
|
39
|
+
() => ({
|
|
40
|
+
byId: true,
|
|
41
|
+
}),
|
|
42
|
+
],
|
|
43
|
+
type: "string",
|
|
44
|
+
label: "Label",
|
|
45
|
+
description: "The ID of the label to remove from the issue",
|
|
46
|
+
optional: false,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
async run({ $ }) {
|
|
50
|
+
const response = await this.linearApp.removeLabelFromIssue(this.issueId, this.labelId);
|
|
51
|
+
$.export("$summary", `Successfully removed label from issue ${this.issueId}`);
|
|
52
|
+
return response;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
@@ -7,7 +7,7 @@ export default {
|
|
|
7
7
|
name: "Search Issues",
|
|
8
8
|
description: "Searches Linear issues by team, project, assignee, labels, state, or text query. Supports pagination, ordering, and archived issues. Returns array of matching issues. Uses API Key authentication. See Linear docs for additional info [here](https://linear.app/developers/graphql).",
|
|
9
9
|
type: "action",
|
|
10
|
-
version: "0.2.
|
|
10
|
+
version: "0.2.19",
|
|
11
11
|
annotations: {
|
|
12
12
|
destructiveHint: false,
|
|
13
13
|
openWorldHint: true,
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import linearApp from "../../linear_app.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "linear_app-update-initiative",
|
|
5
|
+
name: "Update Initiative",
|
|
6
|
+
description: "Update an initiative in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/objects/Mutation?query=initiativeupdate)",
|
|
7
|
+
version: "0.0.2",
|
|
8
|
+
type: "action",
|
|
9
|
+
annotations: {
|
|
10
|
+
destructiveHint: true,
|
|
11
|
+
openWorldHint: true,
|
|
12
|
+
readOnlyHint: false,
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
linearApp,
|
|
16
|
+
initiativeId: {
|
|
17
|
+
propDefinition: [
|
|
18
|
+
linearApp,
|
|
19
|
+
"initiativeId",
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
name: {
|
|
23
|
+
type: "string",
|
|
24
|
+
label: "Name",
|
|
25
|
+
description: "The name of the initiative",
|
|
26
|
+
optional: true,
|
|
27
|
+
},
|
|
28
|
+
description: {
|
|
29
|
+
type: "string",
|
|
30
|
+
label: "Description",
|
|
31
|
+
description: "The description of the initiative",
|
|
32
|
+
optional: true,
|
|
33
|
+
},
|
|
34
|
+
status: {
|
|
35
|
+
propDefinition: [
|
|
36
|
+
linearApp,
|
|
37
|
+
"initiativeStatus",
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
targetDate: {
|
|
41
|
+
propDefinition: [
|
|
42
|
+
linearApp,
|
|
43
|
+
"targetDate",
|
|
44
|
+
],
|
|
45
|
+
optional: true,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
async run({ $ }) {
|
|
49
|
+
const response = await this.linearApp.updateInitiative(this.initiativeId, {
|
|
50
|
+
name: this.name,
|
|
51
|
+
description: this.description,
|
|
52
|
+
status: this.status,
|
|
53
|
+
targetDate: this.targetDate,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
$.export("$summary", `Successfully updated initiative with ID ${response._initiative.id}`);
|
|
57
|
+
|
|
58
|
+
return response;
|
|
59
|
+
},
|
|
60
|
+
};
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
name: "Update Issue",
|
|
6
6
|
description: "Updates an existing Linear issue. Can modify title, description, assignee, state, project, team, labels, priority, and dates. Returns updated issue details. Uses API Key authentication. [See the documentation](https://linear.app/developers/graphql#creating-and-editing-issues).",
|
|
7
7
|
type: "action",
|
|
8
|
-
version: "0.1.
|
|
8
|
+
version: "0.1.19",
|
|
9
9
|
annotations: {
|
|
10
10
|
destructiveHint: true,
|
|
11
11
|
openWorldHint: true,
|
package/linear_app.app.mjs
CHANGED
|
@@ -232,6 +232,40 @@ export default {
|
|
|
232
232
|
});
|
|
233
233
|
},
|
|
234
234
|
},
|
|
235
|
+
initiativeId: {
|
|
236
|
+
type: "string",
|
|
237
|
+
label: "Initiative",
|
|
238
|
+
description: "The identifier or key of the initiative to update",
|
|
239
|
+
async options({ prevContext }) {
|
|
240
|
+
return this.listResourcesOptions({
|
|
241
|
+
prevContext,
|
|
242
|
+
resourcesFn: this.listInitiatives,
|
|
243
|
+
resouceMapper: ({
|
|
244
|
+
id, name,
|
|
245
|
+
}) => ({
|
|
246
|
+
label: name,
|
|
247
|
+
value: id,
|
|
248
|
+
}),
|
|
249
|
+
});
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
customViewId: {
|
|
253
|
+
type: "string",
|
|
254
|
+
label: "Custom View",
|
|
255
|
+
description: "The identifier or key of the custom view to get issues from",
|
|
256
|
+
async options({ prevContext }) {
|
|
257
|
+
return this.listResourcesOptions({
|
|
258
|
+
prevContext,
|
|
259
|
+
resourcesFn: this.listCustomViews,
|
|
260
|
+
resouceMapper: ({
|
|
261
|
+
id, name,
|
|
262
|
+
}) => ({
|
|
263
|
+
label: name,
|
|
264
|
+
value: id,
|
|
265
|
+
}),
|
|
266
|
+
});
|
|
267
|
+
},
|
|
268
|
+
},
|
|
235
269
|
projectPriority: {
|
|
236
270
|
type: "integer",
|
|
237
271
|
label: "Priority",
|
|
@@ -246,6 +280,23 @@ export default {
|
|
|
246
280
|
optional: true,
|
|
247
281
|
options: constants.PRIORITY_OPTIONS,
|
|
248
282
|
},
|
|
283
|
+
initiativeStatus: {
|
|
284
|
+
type: "string",
|
|
285
|
+
label: "Status",
|
|
286
|
+
description: "The status of the initiative",
|
|
287
|
+
optional: true,
|
|
288
|
+
options: [
|
|
289
|
+
"Active",
|
|
290
|
+
"Completed",
|
|
291
|
+
"Planned",
|
|
292
|
+
],
|
|
293
|
+
},
|
|
294
|
+
targetDate: {
|
|
295
|
+
type: "string",
|
|
296
|
+
label: "Target Date",
|
|
297
|
+
description: "The target date of the initiative in ISO 8601 format",
|
|
298
|
+
optional: true,
|
|
299
|
+
},
|
|
249
300
|
query: {
|
|
250
301
|
type: "string",
|
|
251
302
|
label: "Query",
|
|
@@ -311,6 +362,18 @@ export default {
|
|
|
311
362
|
async createIssue(input) {
|
|
312
363
|
return this.client().createIssue(input);
|
|
313
364
|
},
|
|
365
|
+
async createComment(input) {
|
|
366
|
+
return this.client().createComment(input);
|
|
367
|
+
},
|
|
368
|
+
async createInitiative(input) {
|
|
369
|
+
return this.client().createInitiative(input);
|
|
370
|
+
},
|
|
371
|
+
async updateInitiative(initiativeId, input) {
|
|
372
|
+
return this.client().updateInitiative(initiativeId, input);
|
|
373
|
+
},
|
|
374
|
+
async removeLabelFromIssue(issueId, labelId) {
|
|
375
|
+
return this.client().issueRemoveLabel(issueId, labelId);
|
|
376
|
+
},
|
|
314
377
|
async updateIssue({
|
|
315
378
|
issueId, input,
|
|
316
379
|
}) {
|
|
@@ -360,6 +423,9 @@ export default {
|
|
|
360
423
|
async getTeam(id) {
|
|
361
424
|
return this.client().team(id);
|
|
362
425
|
},
|
|
426
|
+
async getCustomView(id) {
|
|
427
|
+
return this.client().customView(id);
|
|
428
|
+
},
|
|
363
429
|
async listTeams(variables = {}) {
|
|
364
430
|
return this.client().teams(variables);
|
|
365
431
|
},
|
|
@@ -408,6 +474,12 @@ export default {
|
|
|
408
474
|
async listProjectLabels(variables = {}) {
|
|
409
475
|
return this.client().projectLabels(variables);
|
|
410
476
|
},
|
|
477
|
+
async listCustomViews(variables = {}) {
|
|
478
|
+
return this.client().customViews(variables);
|
|
479
|
+
},
|
|
480
|
+
async listInitiatives(variables = {}) {
|
|
481
|
+
return this.client().initiatives(variables);
|
|
482
|
+
},
|
|
411
483
|
async listResourcesOptions({
|
|
412
484
|
prevContext, resourcesFn, resourcesArgs, resouceMapper,
|
|
413
485
|
} = {}) {
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ export default {
|
|
|
7
7
|
name: "New Comment Created (Instant)",
|
|
8
8
|
description: "Triggers instantly when a new comment is added to an issue in Linear. Returns comment details including content, author, issue reference, and timestamps. Supports filtering by team. See Linear docs for additional info [here](https://linear.app/developers/webhooks).",
|
|
9
9
|
type: "source",
|
|
10
|
-
version: "0.1.
|
|
10
|
+
version: "0.1.20",
|
|
11
11
|
dedupe: "unique",
|
|
12
12
|
methods: {
|
|
13
13
|
...common.methods,
|
|
@@ -7,7 +7,7 @@ export default {
|
|
|
7
7
|
name: "New Issue Created (Instant)",
|
|
8
8
|
description: "Triggers instantly when a new issue is created in Linear. Provides complete issue details including title, description, team, assignee, state, and timestamps. Supports filtering by team and project. See Linear docs for additional info [here](https://linear.app/developers/webhooks).",
|
|
9
9
|
type: "source",
|
|
10
|
-
version: "0.3.
|
|
10
|
+
version: "0.3.20",
|
|
11
11
|
dedupe: "unique",
|
|
12
12
|
methods: {
|
|
13
13
|
...common.methods,
|
|
@@ -7,7 +7,7 @@ export default {
|
|
|
7
7
|
name: "Issue Updated (Instant)",
|
|
8
8
|
description: "Triggers instantly when any issue is updated in Linear. Provides complete issue details with changes. Supports filtering by team and project. Includes all updates except status changes. See Linear docs for additional info [here](https://linear.app/developers/webhooks).",
|
|
9
9
|
type: "source",
|
|
10
|
-
version: "0.3.
|
|
10
|
+
version: "0.3.20",
|
|
11
11
|
dedupe: "unique",
|
|
12
12
|
methods: {
|
|
13
13
|
...common.methods,
|
|
@@ -8,7 +8,7 @@ export default {
|
|
|
8
8
|
name: "Issue Status Updated (Instant)",
|
|
9
9
|
description: "Triggers instantly when an issue's workflow state changes (e.g., Todo to In Progress). Returns issue with previous and current state info. Can filter by specific target state. See Linear docs for additional info [here](https://linear.app/developers/webhooks).",
|
|
10
10
|
type: "source",
|
|
11
|
-
version: "0.1.
|
|
11
|
+
version: "0.1.20",
|
|
12
12
|
dedupe: "unique",
|
|
13
13
|
props: {
|
|
14
14
|
linearApp: common.props.linearApp,
|
|
@@ -8,7 +8,7 @@ export default {
|
|
|
8
8
|
name: "New Project Update Written (Instant)",
|
|
9
9
|
description: "Triggers instantly when a project update (status report) is created in Linear. Returns update content, author, project details, and health status. Filters by team and optionally by project. See Linear docs for additional info [here](https://linear.app/developers/webhooks).",
|
|
10
10
|
type: "source",
|
|
11
|
-
version: "0.0.
|
|
11
|
+
version: "0.0.12",
|
|
12
12
|
dedupe: "unique",
|
|
13
13
|
props: {
|
|
14
14
|
linearApp,
|
|
@@ -8,7 +8,7 @@ export default {
|
|
|
8
8
|
name: "Project Updated (Instant)",
|
|
9
9
|
description: "Triggers instantly when a project is updated in Linear. Returns project details including name, description, status, dates, and team info. Supports filtering by specific teams. See Linear docs for additional info [here](https://linear.app/developers/webhooks).",
|
|
10
10
|
type: "source",
|
|
11
|
-
version: "0.0.
|
|
11
|
+
version: "0.0.13",
|
|
12
12
|
dedupe: "unique",
|
|
13
13
|
props: {
|
|
14
14
|
linearApp,
|