@activepieces/piece-jira-cloud 0.0.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/README.md +7 -0
- package/package.json +19 -0
- package/src/auth.d.ts +11 -0
- package/src/auth.js +52 -0
- package/src/auth.js.map +1 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +25 -0
- package/src/index.js.map +1 -0
- package/src/lib/actions/create-issue.d.ts +13 -0
- package/src/lib/actions/create-issue.js +71 -0
- package/src/lib/actions/create-issue.js.map +1 -0
- package/src/lib/actions/search-issues.d.ts +9 -0
- package/src/lib/actions/search-issues.js +37 -0
- package/src/lib/actions/search-issues.js.map +1 -0
- package/src/lib/common/index.d.ts +57 -0
- package/src/lib/common/index.js +153 -0
- package/src/lib/common/index.js.map +1 -0
- package/src/lib/common/props.d.ts +9 -0
- package/src/lib/common/props.js +88 -0
- package/src/lib/common/props.js.map +1 -0
- package/src/lib/triggers/new-issue.d.ts +9 -0
- package/src/lib/triggers/new-issue.js +67 -0
- package/src/lib/triggers/new-issue.js.map +1 -0
- package/src/lib/triggers/updated-issue.d.ts +9 -0
- package/src/lib/triggers/updated-issue.js +67 -0
- package/src/lib/triggers/updated-issue.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@activepieces/piece-jira-cloud",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"@sinclair/typebox": "0.26.8",
|
|
6
|
+
"axios": "^1.6.0",
|
|
7
|
+
"dayjs": "1.11.9",
|
|
8
|
+
"is-base64": "1.1.0",
|
|
9
|
+
"lodash": "4.17.21",
|
|
10
|
+
"nanoid": "3.3.6",
|
|
11
|
+
"semver": "7.5.4",
|
|
12
|
+
"@activepieces/pieces-common": "0.2.5",
|
|
13
|
+
"@activepieces/pieces-framework": "0.7.4",
|
|
14
|
+
"@activepieces/shared": "0.10.40",
|
|
15
|
+
"tslib": "2.6.2"
|
|
16
|
+
},
|
|
17
|
+
"main": "./src/index.js",
|
|
18
|
+
"type": "commonjs"
|
|
19
|
+
}
|
package/src/auth.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SecretTextProperty, ShortTextProperty, StaticPropsValue } from "@activepieces/pieces-framework";
|
|
2
|
+
export declare const jiraCloudAuth: import("@activepieces/pieces-framework").CustomAuthProperty<true, {
|
|
3
|
+
instanceUrl: ShortTextProperty<true>;
|
|
4
|
+
email: ShortTextProperty<true>;
|
|
5
|
+
apiToken: SecretTextProperty<true>;
|
|
6
|
+
}>;
|
|
7
|
+
export type JiraAuth = StaticPropsValue<{
|
|
8
|
+
instanceUrl: ShortTextProperty<true>;
|
|
9
|
+
email: ShortTextProperty<true>;
|
|
10
|
+
apiToken: SecretTextProperty<true>;
|
|
11
|
+
}>;
|
package/src/auth.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jiraCloudAuth = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const common_1 = require("./lib/common");
|
|
7
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
8
|
+
exports.jiraCloudAuth = pieces_framework_1.PieceAuth.CustomAuth({
|
|
9
|
+
description: `
|
|
10
|
+
You can generate your API token from:
|
|
11
|
+
***https://id.atlassian.com/manage-profile/security/api-tokens***
|
|
12
|
+
`,
|
|
13
|
+
required: true,
|
|
14
|
+
props: {
|
|
15
|
+
instanceUrl: pieces_framework_1.Property.ShortText({
|
|
16
|
+
displayName: 'Instance URL',
|
|
17
|
+
description: 'The link of your Jira instance (e.g https://example.atlassian.net)',
|
|
18
|
+
required: true,
|
|
19
|
+
validators: [pieces_framework_1.Validators.url]
|
|
20
|
+
}),
|
|
21
|
+
email: pieces_framework_1.Property.ShortText({
|
|
22
|
+
displayName: 'Email',
|
|
23
|
+
description: 'The email you use to login to Jira',
|
|
24
|
+
required: true,
|
|
25
|
+
validators: [pieces_framework_1.Validators.email]
|
|
26
|
+
}),
|
|
27
|
+
apiToken: pieces_framework_1.PieceAuth.SecretText({
|
|
28
|
+
displayName: 'API Token',
|
|
29
|
+
description: 'Your Jira API Token',
|
|
30
|
+
required: true
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
validate: ({ auth }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
try {
|
|
35
|
+
yield (0, common_1.sendJiraRequest)({
|
|
36
|
+
auth: auth,
|
|
37
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
38
|
+
url: 'myself'
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
valid: true
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
return {
|
|
46
|
+
valid: false,
|
|
47
|
+
error: e.response.body.message
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=auth.js.map
|
package/src/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../packages/pieces/jira-cloud/src/auth.ts"],"names":[],"mappings":";;;;AAAA,qEAA0I;AAC1I,yCAAyD;AACzD,+DAAoE;AAEvD,QAAA,aAAa,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC9C,WAAW,EAAE;;;KAGZ;IACD,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACH,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,oEAAoE;YACjF,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,6BAAU,CAAC,GAAG,CAAC;SAC/B,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACtB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,6BAAU,CAAC,KAAK,CAAC;SACjC,CAAC;QACF,QAAQ,EAAE,4BAAS,CAAC,UAAU,CAAC;YAC3B,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACjB,CAAC;KACL;IACD,QAAQ,EAAE,CAAO,EAAC,IAAI,EAAC,EAAE,EAAE;QACvB,IAAI;YACA,MAAM,IAAA,wBAAe,EAAC;gBAClB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,QAAQ;aAChB,CAAC,CAAA;YACF,OAAO;gBACH,KAAK,EAAE,IAAI;aACd,CAAA;SACJ;QACD,OAAO,CAAC,EAAE;YACN,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAI,CAAe,CAAC,QAAQ,CAAC,IAAY,CAAC,OAAO;aACzD,CAAA;SACJ;IACL,CAAC,CAAA;CACJ,CAAC,CAAA"}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const jiraCloud: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").CustomAuthProperty<true, {
|
|
2
|
+
instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
+
email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
apiToken: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
5
|
+
}>>;
|
package/src/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jiraCloud = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const auth_1 = require("./auth");
|
|
6
|
+
const create_issue_1 = require("./lib/actions/create-issue");
|
|
7
|
+
const search_issues_1 = require("./lib/actions/search-issues");
|
|
8
|
+
const new_issue_1 = require("./lib/triggers/new-issue");
|
|
9
|
+
const updated_issue_1 = require("./lib/triggers/updated-issue");
|
|
10
|
+
exports.jiraCloud = (0, pieces_framework_1.createPiece)({
|
|
11
|
+
displayName: "Jira Cloud",
|
|
12
|
+
auth: auth_1.jiraCloudAuth,
|
|
13
|
+
minimumSupportedRelease: '0.9.0',
|
|
14
|
+
logoUrl: "https://cdn.activepieces.com/pieces/jira.png",
|
|
15
|
+
authors: ['MoShizzle'],
|
|
16
|
+
actions: [
|
|
17
|
+
create_issue_1.createIssue,
|
|
18
|
+
search_issues_1.searchIssues,
|
|
19
|
+
],
|
|
20
|
+
triggers: [
|
|
21
|
+
new_issue_1.newIssue,
|
|
22
|
+
updated_issue_1.updatedIssue
|
|
23
|
+
],
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pieces/jira-cloud/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAA6D;AAE7D,iCAAuC;AACvC,6DAAyD;AACzD,+DAA2D;AAC3D,wDAAoD;AACpD,gEAA4D;AAE/C,QAAA,SAAS,GAAG,IAAA,8BAAW,EAAC;IACjC,WAAW,EAAE,YAAY;IACzB,IAAI,EAAE,oBAAa;IACnB,uBAAuB,EAAE,OAAO;IAChC,OAAO,EAAE,8CAA8C;IACvD,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE;QACL,0BAAW;QACX,4BAAY;KACf;IACD,QAAQ,EAAE;QACN,oBAAQ;QACR,4BAAY;KACf;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const createIssue: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<true, {
|
|
2
|
+
instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
+
email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
apiToken: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
5
|
+
}>, {
|
|
6
|
+
projectId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
7
|
+
issueTypeId: import("@activepieces/pieces-framework").DropdownProperty<any, false> | import("@activepieces/pieces-framework").DropdownProperty<any, true>;
|
|
8
|
+
summary: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
9
|
+
description: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
10
|
+
assignee: import("@activepieces/pieces-framework").DropdownProperty<any, false> | import("@activepieces/pieces-framework").DropdownProperty<any, true>;
|
|
11
|
+
priority: import("@activepieces/pieces-framework").DropdownProperty<any, false>;
|
|
12
|
+
parentKey: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createIssue = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const auth_1 = require("../../auth");
|
|
7
|
+
const props_1 = require("../common/props");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
exports.createIssue = (0, pieces_framework_1.createAction)({
|
|
10
|
+
name: 'create_issue',
|
|
11
|
+
displayName: 'Create Issue',
|
|
12
|
+
description: 'Create a new issue in a project',
|
|
13
|
+
auth: auth_1.jiraCloudAuth,
|
|
14
|
+
props: {
|
|
15
|
+
projectId: (0, props_1.getProjectIdDropdown)(),
|
|
16
|
+
issueTypeId: (0, props_1.getIssueTypeIdDropdown)({ refreshers: ['projectId'] }),
|
|
17
|
+
summary: pieces_framework_1.Property.ShortText({
|
|
18
|
+
displayName: 'Summary',
|
|
19
|
+
required: true,
|
|
20
|
+
}),
|
|
21
|
+
description: pieces_framework_1.Property.LongText({
|
|
22
|
+
displayName: 'Description',
|
|
23
|
+
required: false,
|
|
24
|
+
}),
|
|
25
|
+
assignee: (0, props_1.getUsersDropdown)({
|
|
26
|
+
displayName: 'Assignee',
|
|
27
|
+
refreshers: ['projectId'],
|
|
28
|
+
required: false,
|
|
29
|
+
}),
|
|
30
|
+
priority: pieces_framework_1.Property.Dropdown({
|
|
31
|
+
displayName: 'Priority',
|
|
32
|
+
required: false,
|
|
33
|
+
refreshers: [],
|
|
34
|
+
options: ({ auth }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
if (!auth) {
|
|
36
|
+
return {
|
|
37
|
+
options: []
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const priorities = yield (0, common_1.getPriorities)({ auth: auth });
|
|
41
|
+
return {
|
|
42
|
+
options: priorities.map(item => {
|
|
43
|
+
return {
|
|
44
|
+
label: item.name,
|
|
45
|
+
value: item.id
|
|
46
|
+
};
|
|
47
|
+
})
|
|
48
|
+
};
|
|
49
|
+
})
|
|
50
|
+
}),
|
|
51
|
+
parentKey: pieces_framework_1.Property.ShortText({
|
|
52
|
+
displayName: 'Parent Key',
|
|
53
|
+
description: 'If this issue is a subtask, insert the parent issue key',
|
|
54
|
+
required: false,
|
|
55
|
+
}),
|
|
56
|
+
},
|
|
57
|
+
run: ({ auth, propsValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
58
|
+
const { projectId, issueTypeId, assignee, summary, description, priority, parentKey } = propsValue;
|
|
59
|
+
return yield (0, common_1.createJiraIssue)({
|
|
60
|
+
auth,
|
|
61
|
+
projectId: projectId,
|
|
62
|
+
summary,
|
|
63
|
+
issueTypeId,
|
|
64
|
+
assignee,
|
|
65
|
+
description,
|
|
66
|
+
priority,
|
|
67
|
+
parentKey,
|
|
68
|
+
});
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=create-issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-issue.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/jira-cloud/src/lib/actions/create-issue.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,qCAAqD;AACrD,2CAAiG;AACjG,sCAA2D;AAE9C,QAAA,WAAW,GAAG,IAAA,+BAAY,EAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,iCAAiC;IAC9C,IAAI,EAAE,oBAAa;IACnB,KAAK,EAAE;QACH,SAAS,EAAE,IAAA,4BAAoB,GAAE;QACjC,WAAW,EAAE,IAAA,8BAAsB,EAAC,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC3B,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAClB,CAAC;QACF,QAAQ,EAAE,IAAA,wBAAgB,EAAC;YACvB,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,CAAC,WAAW,CAAC;YACzB,QAAQ,EAAE,KAAK;SAClB,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACxB,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,CAAO,EAAE,IAAI,EAAE,EAAE,EAAE;gBACxB,IAAI,CAAC,IAAI,EAAE;oBACP,OAAO;wBACH,OAAO,EAAE,EAAE;qBACd,CAAA;iBACJ;gBAED,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAa,EAAC,EAAE,IAAI,EAAE,IAAgB,EAAE,CAAC,CAAA;gBAClE,OAAO;oBACH,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC3B,OAAO;4BACH,KAAK,EAAE,IAAI,CAAC,IAAI;4BAChB,KAAK,EAAE,IAAI,CAAC,EAAE;yBACjB,CAAA;oBACL,CAAC,CAAC;iBACL,CAAA;YACL,CAAC,CAAA;SACJ,CAAC;QACF,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,KAAK;SAClB,CAAC;KACL;IACD,GAAG,EAAE,CAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;QAChC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAA;QAElG,OAAO,MAAM,IAAA,wBAAe,EAAC;YACzB,IAAI;YACJ,SAAS,EAAE,SAAmB;YAC9B,OAAO;YACP,WAAW;YACX,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,SAAS;SACZ,CAAC,CAAA;IACN,CAAC,CAAA;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const searchIssues: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<true, {
|
|
2
|
+
instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
+
email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
apiToken: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
5
|
+
}>, {
|
|
6
|
+
jql: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
7
|
+
maxResults: import("@activepieces/pieces-framework").NumberProperty<true>;
|
|
8
|
+
sanitizeJql: import("@activepieces/pieces-framework").CheckboxProperty<true>;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.searchIssues = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const auth_1 = require("../../auth");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
exports.searchIssues = (0, pieces_framework_1.createAction)({
|
|
9
|
+
name: 'search_issues',
|
|
10
|
+
displayName: 'Search Issues',
|
|
11
|
+
description: 'Search for issues with JQL',
|
|
12
|
+
auth: auth_1.jiraCloudAuth,
|
|
13
|
+
props: {
|
|
14
|
+
jql: pieces_framework_1.Property.LongText({
|
|
15
|
+
displayName: 'JQL',
|
|
16
|
+
description: 'The JQL query to use in the search',
|
|
17
|
+
defaultValue: `type = story and created > '2023-12-13 14:00'`,
|
|
18
|
+
required: true
|
|
19
|
+
}),
|
|
20
|
+
maxResults: pieces_framework_1.Property.Number({
|
|
21
|
+
displayName: 'Max Results',
|
|
22
|
+
defaultValue: 50,
|
|
23
|
+
required: true,
|
|
24
|
+
validators: [pieces_framework_1.Validators.number, pieces_framework_1.Validators.minValue(1), pieces_framework_1.Validators.maxValue(100)]
|
|
25
|
+
}),
|
|
26
|
+
sanitizeJql: pieces_framework_1.Property.Checkbox({
|
|
27
|
+
displayName: 'Sanitize JQL',
|
|
28
|
+
required: true,
|
|
29
|
+
defaultValue: true,
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
run: ({ auth, propsValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
const { jql, maxResults, sanitizeJql } = propsValue;
|
|
34
|
+
return yield (0, common_1.searchIssuesByJql)({ auth, jql, maxResults: maxResults, sanitizeJql });
|
|
35
|
+
})
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=search-issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-issues.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/jira-cloud/src/lib/actions/search-issues.ts"],"names":[],"mappings":";;;;AAAA,qEAAoF;AACpF,qCAA2C;AAC3C,sCAA8C;AAEjC,QAAA,YAAY,GAAG,IAAA,+BAAY,EAAC;IACrC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,4BAA4B;IACzC,IAAI,EAAE,oBAAa;IACnB,KAAK,EAAE;QACH,GAAG,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,oCAAoC;YACjD,YAAY,EAAE,+CAA+C;YAC7D,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,aAAa;YAC1B,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,6BAAU,CAAC,MAAM,EAAE,6BAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,6BAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACpF,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC3B,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI;SACrB,CAAC;KACL;IACD,GAAG,EAAE,CAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;QAChC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,UAAU,CAAA;QACnD,OAAO,MAAM,IAAA,0BAAiB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;IACtF,CAAC,CAAA;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { HttpMessageBody, HttpMethod, HttpRequest, QueryParams } from '@activepieces/pieces-common';
|
|
2
|
+
import { JiraAuth } from '../../auth';
|
|
3
|
+
export declare function sendJiraRequest(request: HttpRequest & {
|
|
4
|
+
auth: JiraAuth;
|
|
5
|
+
}): Promise<import("@activepieces/pieces-common").HttpResponse<HttpMessageBody>>;
|
|
6
|
+
export declare function getUsers(auth: JiraAuth): Promise<any[]>;
|
|
7
|
+
export declare function getProjects(auth: JiraAuth): Promise<JiraProject[]>;
|
|
8
|
+
export declare function getIssueTypes({ auth, projectId }: {
|
|
9
|
+
auth: JiraAuth;
|
|
10
|
+
projectId: string;
|
|
11
|
+
}): Promise<any[]>;
|
|
12
|
+
export declare function getPriorities({ auth }: {
|
|
13
|
+
auth: JiraAuth;
|
|
14
|
+
}): Promise<any[]>;
|
|
15
|
+
export declare function executeJql({ auth, jql, sanitizeJql, url, method, queryParams, body }: {
|
|
16
|
+
auth: JiraAuth;
|
|
17
|
+
jql: string;
|
|
18
|
+
sanitizeJql: boolean;
|
|
19
|
+
url: string;
|
|
20
|
+
method: HttpMethod;
|
|
21
|
+
queryParams?: QueryParams;
|
|
22
|
+
body?: HttpMessageBody;
|
|
23
|
+
}): Promise<HttpMessageBody>;
|
|
24
|
+
export declare function searchIssuesByJql({ auth, jql, maxResults, sanitizeJql }: {
|
|
25
|
+
auth: JiraAuth;
|
|
26
|
+
jql: string;
|
|
27
|
+
maxResults: number;
|
|
28
|
+
sanitizeJql: boolean;
|
|
29
|
+
}): Promise<any[]>;
|
|
30
|
+
export declare function createJiraIssue(data: CreateIssueParams): Promise<HttpMessageBody>;
|
|
31
|
+
export interface JiraIssueType {
|
|
32
|
+
id: string;
|
|
33
|
+
description: string;
|
|
34
|
+
name: string;
|
|
35
|
+
}
|
|
36
|
+
export interface JiraProject {
|
|
37
|
+
id: string;
|
|
38
|
+
key: string;
|
|
39
|
+
name: string;
|
|
40
|
+
expand: string;
|
|
41
|
+
self: string;
|
|
42
|
+
projectTypeKey: string;
|
|
43
|
+
simplified: boolean;
|
|
44
|
+
style: string;
|
|
45
|
+
isPrivate: boolean;
|
|
46
|
+
properties: any;
|
|
47
|
+
}
|
|
48
|
+
export interface CreateIssueParams {
|
|
49
|
+
auth: JiraAuth;
|
|
50
|
+
projectId: string;
|
|
51
|
+
summary: string;
|
|
52
|
+
description?: string;
|
|
53
|
+
issueTypeId: string;
|
|
54
|
+
assignee?: string;
|
|
55
|
+
priority?: string;
|
|
56
|
+
parentKey?: string;
|
|
57
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createJiraIssue = exports.searchIssuesByJql = exports.executeJql = exports.getPriorities = exports.getIssueTypes = exports.getProjects = exports.getUsers = exports.sendJiraRequest = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
function sendJiraRequest(request) {
|
|
7
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
8
|
+
return pieces_common_1.httpClient.sendRequest(Object.assign(Object.assign({}, request), { url: `${request.auth.instanceUrl}/rest/api/3/${request.url}`, authentication: {
|
|
9
|
+
type: pieces_common_1.AuthenticationType.BASIC,
|
|
10
|
+
username: request.auth.email,
|
|
11
|
+
password: request.auth.apiToken
|
|
12
|
+
} }));
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
exports.sendJiraRequest = sendJiraRequest;
|
|
16
|
+
function getUsers(auth) {
|
|
17
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const response = yield sendJiraRequest({
|
|
19
|
+
url: 'users/search',
|
|
20
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
21
|
+
auth: auth,
|
|
22
|
+
queryParams: {
|
|
23
|
+
maxResults: '1000'
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return response.body;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
exports.getUsers = getUsers;
|
|
30
|
+
function getProjects(auth) {
|
|
31
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const response = yield sendJiraRequest({
|
|
33
|
+
url: 'project/search',
|
|
34
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
35
|
+
auth: auth
|
|
36
|
+
});
|
|
37
|
+
return response.body.values;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
exports.getProjects = getProjects;
|
|
41
|
+
function getIssueTypes({ auth, projectId }) {
|
|
42
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const response = yield sendJiraRequest({
|
|
44
|
+
url: 'issuetype/project',
|
|
45
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
46
|
+
auth: auth,
|
|
47
|
+
queryParams: {
|
|
48
|
+
projectId
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return response.body;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
exports.getIssueTypes = getIssueTypes;
|
|
55
|
+
function getPriorities({ auth }) {
|
|
56
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const response = yield sendJiraRequest({
|
|
58
|
+
url: 'priority',
|
|
59
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
60
|
+
auth: auth
|
|
61
|
+
});
|
|
62
|
+
return response.body;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
exports.getPriorities = getPriorities;
|
|
66
|
+
function executeJql({ auth, jql, sanitizeJql, url, method, queryParams, body }) {
|
|
67
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
let reqJql = jql;
|
|
69
|
+
if (sanitizeJql) {
|
|
70
|
+
const sanitizeResult = (yield sendJiraRequest({
|
|
71
|
+
auth: auth,
|
|
72
|
+
url: 'jql/sanitize',
|
|
73
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
74
|
+
body: {
|
|
75
|
+
queries: [
|
|
76
|
+
{
|
|
77
|
+
query: jql
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
})).body;
|
|
82
|
+
reqJql = sanitizeResult.queries[0].sanitizedQuery;
|
|
83
|
+
}
|
|
84
|
+
const response = yield sendJiraRequest({
|
|
85
|
+
auth,
|
|
86
|
+
url,
|
|
87
|
+
method,
|
|
88
|
+
body: Object.assign(Object.assign({}, body), { jql: reqJql }),
|
|
89
|
+
queryParams
|
|
90
|
+
});
|
|
91
|
+
return response.body;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
exports.executeJql = executeJql;
|
|
95
|
+
function searchIssuesByJql({ auth, jql, maxResults, sanitizeJql }) {
|
|
96
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
return (yield executeJql({
|
|
98
|
+
auth,
|
|
99
|
+
url: 'search',
|
|
100
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
101
|
+
jql,
|
|
102
|
+
body: {
|
|
103
|
+
maxResults
|
|
104
|
+
},
|
|
105
|
+
sanitizeJql,
|
|
106
|
+
})).issues;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
exports.searchIssuesByJql = searchIssuesByJql;
|
|
110
|
+
function createJiraIssue(data) {
|
|
111
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const fields = {
|
|
113
|
+
project: {
|
|
114
|
+
id: data.projectId
|
|
115
|
+
},
|
|
116
|
+
summary: data.summary,
|
|
117
|
+
issuetype: {
|
|
118
|
+
id: data.issueTypeId
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
if (data.assignee)
|
|
122
|
+
fields.assignee = { id: data.assignee };
|
|
123
|
+
if (data.priority)
|
|
124
|
+
fields.priority = { id: data.priority };
|
|
125
|
+
if (data.description)
|
|
126
|
+
fields.description = {
|
|
127
|
+
content: [
|
|
128
|
+
{
|
|
129
|
+
content: [
|
|
130
|
+
{
|
|
131
|
+
text: data.description,
|
|
132
|
+
type: "text"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
type: "paragraph",
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
type: "doc",
|
|
139
|
+
version: 1,
|
|
140
|
+
};
|
|
141
|
+
const response = yield sendJiraRequest({
|
|
142
|
+
url: 'issue',
|
|
143
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
144
|
+
auth: data.auth,
|
|
145
|
+
body: {
|
|
146
|
+
fields: fields
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
return response.body;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
exports.createJiraIssue = createJiraIssue;
|
|
153
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/jira-cloud/src/lib/common/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function getProjectIdDropdown(data?: DropdownParams): import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
2
|
+
export declare function getIssueTypeIdDropdown(data?: DropdownParams): import("@activepieces/pieces-framework").DropdownProperty<any, false> | import("@activepieces/pieces-framework").DropdownProperty<any, true>;
|
|
3
|
+
export declare function getUsersDropdown(data?: DropdownParams): import("@activepieces/pieces-framework").DropdownProperty<any, false> | import("@activepieces/pieces-framework").DropdownProperty<any, true>;
|
|
4
|
+
export interface DropdownParams {
|
|
5
|
+
required?: boolean;
|
|
6
|
+
refreshers?: string[];
|
|
7
|
+
displayName?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUsersDropdown = exports.getIssueTypeIdDropdown = exports.getProjectIdDropdown = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const _1 = require(".");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
function getProjectIdDropdown(data) {
|
|
8
|
+
var _a, _b, _c;
|
|
9
|
+
return pieces_framework_1.Property.Dropdown({
|
|
10
|
+
displayName: (_a = data === null || data === void 0 ? void 0 : data.displayName) !== null && _a !== void 0 ? _a : 'Project',
|
|
11
|
+
description: data === null || data === void 0 ? void 0 : data.description,
|
|
12
|
+
required: (_b = data === null || data === void 0 ? void 0 : data.required) !== null && _b !== void 0 ? _b : true,
|
|
13
|
+
refreshers: (_c = data === null || data === void 0 ? void 0 : data.refreshers) !== null && _c !== void 0 ? _c : [],
|
|
14
|
+
options: ({ auth }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
if (!auth) {
|
|
16
|
+
return {
|
|
17
|
+
options: []
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const projects = yield (0, _1.getProjects)(auth);
|
|
21
|
+
return {
|
|
22
|
+
options: projects.map(project => {
|
|
23
|
+
return {
|
|
24
|
+
label: project.name,
|
|
25
|
+
value: project.id
|
|
26
|
+
};
|
|
27
|
+
})
|
|
28
|
+
};
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
exports.getProjectIdDropdown = getProjectIdDropdown;
|
|
33
|
+
function getIssueTypeIdDropdown(data) {
|
|
34
|
+
var _a, _b, _c;
|
|
35
|
+
return pieces_framework_1.Property.Dropdown({
|
|
36
|
+
displayName: (_a = data === null || data === void 0 ? void 0 : data.displayName) !== null && _a !== void 0 ? _a : 'Issue Type',
|
|
37
|
+
description: data === null || data === void 0 ? void 0 : data.description,
|
|
38
|
+
required: (_b = data === null || data === void 0 ? void 0 : data.required) !== null && _b !== void 0 ? _b : true,
|
|
39
|
+
refreshers: (_c = data === null || data === void 0 ? void 0 : data.refreshers) !== null && _c !== void 0 ? _c : ['projectId'],
|
|
40
|
+
options: ({ auth, projectId }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
if (!auth || !projectId) {
|
|
42
|
+
return {
|
|
43
|
+
options: []
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const issueTypes = yield (0, _1.getIssueTypes)({
|
|
47
|
+
auth: auth,
|
|
48
|
+
projectId: projectId
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
options: issueTypes.map(issueType => {
|
|
52
|
+
return {
|
|
53
|
+
label: issueType.name,
|
|
54
|
+
value: issueType.id
|
|
55
|
+
};
|
|
56
|
+
})
|
|
57
|
+
};
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
exports.getIssueTypeIdDropdown = getIssueTypeIdDropdown;
|
|
62
|
+
function getUsersDropdown(data) {
|
|
63
|
+
var _a, _b, _c;
|
|
64
|
+
return pieces_framework_1.Property.Dropdown({
|
|
65
|
+
displayName: (_a = data === null || data === void 0 ? void 0 : data.displayName) !== null && _a !== void 0 ? _a : 'User',
|
|
66
|
+
description: data === null || data === void 0 ? void 0 : data.description,
|
|
67
|
+
required: (_b = data === null || data === void 0 ? void 0 : data.required) !== null && _b !== void 0 ? _b : true,
|
|
68
|
+
refreshers: (_c = data === null || data === void 0 ? void 0 : data.refreshers) !== null && _c !== void 0 ? _c : [],
|
|
69
|
+
options: ({ auth }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
if (!auth) {
|
|
71
|
+
return {
|
|
72
|
+
options: []
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const users = (yield (0, _1.getUsers)(auth)).filter(user => user.accountType === 'atlassian');
|
|
76
|
+
return {
|
|
77
|
+
options: users.map(user => {
|
|
78
|
+
return {
|
|
79
|
+
label: user.displayName,
|
|
80
|
+
value: user.accountId
|
|
81
|
+
};
|
|
82
|
+
})
|
|
83
|
+
};
|
|
84
|
+
})
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
exports.getUsersDropdown = getUsersDropdown;
|
|
88
|
+
//# sourceMappingURL=props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/jira-cloud/src/lib/common/props.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TriggerStrategy } from "@activepieces/pieces-framework";
|
|
2
|
+
export declare const newIssue: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").CustomAuthProperty<true, {
|
|
3
|
+
instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
5
|
+
apiToken: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
6
|
+
}>, {
|
|
7
|
+
jql: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
8
|
+
sanitizeJql: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.newIssue = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const auth_1 = require("../../auth");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
10
|
+
const polling = {
|
|
11
|
+
strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
|
|
12
|
+
items: ({ auth, lastFetchEpochMS, propsValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
const { jql, sanitizeJql } = propsValue;
|
|
14
|
+
const searchQuery = `${jql ? jql + ' AND ' : ''}created > '${(0, dayjs_1.default)(lastFetchEpochMS).format('YYYY-MM-DD HH:mm')}'`;
|
|
15
|
+
const issues = yield (0, common_1.searchIssuesByJql)({
|
|
16
|
+
auth,
|
|
17
|
+
jql: searchQuery,
|
|
18
|
+
maxResults: 50,
|
|
19
|
+
sanitizeJql: sanitizeJql !== null && sanitizeJql !== void 0 ? sanitizeJql : false
|
|
20
|
+
});
|
|
21
|
+
return issues.map((issue) => ({
|
|
22
|
+
epochMilliSeconds: Date.parse(issue.fields.created),
|
|
23
|
+
data: issue,
|
|
24
|
+
}));
|
|
25
|
+
})
|
|
26
|
+
};
|
|
27
|
+
exports.newIssue = (0, pieces_framework_1.createTrigger)({
|
|
28
|
+
name: 'new_issue',
|
|
29
|
+
displayName: 'New Issue',
|
|
30
|
+
description: 'Triggers when a new issue is created',
|
|
31
|
+
auth: auth_1.jiraCloudAuth,
|
|
32
|
+
type: pieces_framework_1.TriggerStrategy.POLLING,
|
|
33
|
+
props: {
|
|
34
|
+
jql: pieces_framework_1.Property.LongText({
|
|
35
|
+
displayName: 'JQL',
|
|
36
|
+
description: 'Use to filter issues watched',
|
|
37
|
+
required: false
|
|
38
|
+
}),
|
|
39
|
+
sanitizeJql: pieces_framework_1.Property.Checkbox({
|
|
40
|
+
displayName: 'Sanitize JQL',
|
|
41
|
+
required: false,
|
|
42
|
+
defaultValue: true,
|
|
43
|
+
}),
|
|
44
|
+
},
|
|
45
|
+
sampleData: {},
|
|
46
|
+
onEnable(context) {
|
|
47
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
yield pieces_common_1.pollingHelper.onEnable(polling, context);
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
onDisable(context) {
|
|
52
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
yield pieces_common_1.pollingHelper.onDisable(polling, context);
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
run(context) {
|
|
57
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
return yield pieces_common_1.pollingHelper.poll(polling, context);
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
test(context) {
|
|
62
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
return yield pieces_common_1.pollingHelper.test(polling, context);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=new-issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-issue.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/jira-cloud/src/lib/triggers/new-issue.ts"],"names":[],"mappings":";;;;AAAA,qEAAkI;AAClI,+DAAqF;AACrF,qCAA2C;AAC3C,sCAA8C;AAC9C,0DAA0B;AAE1B,MAAM,OAAO,GAAiG;IAC1G,QAAQ,EAAE,8BAAc,CAAC,SAAS;IAClC,KAAK,EAAE,CAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;QACxC,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,IAAA,eAAK,EAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAA;QAClH,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAiB,EAAC;YACnC,IAAI;YACJ,GAAG,EAAE,WAAW;YAChB,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK;SACpC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YACnD,IAAI,EAAE,KAAK;SACd,CAAC,CAAC,CAAC;IACR,CAAC,CAAA;CACJ,CAAA;AAEY,QAAA,QAAQ,GAAG,IAAA,gCAAa,EAAC;IAClC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,sCAAsC;IACnD,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,kCAAe,CAAC,OAAO;IAC7B,KAAK,EAAE;QACH,GAAG,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,KAAK;SAClB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC3B,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI;SACrB,CAAC;KACL;IACD,UAAU,EAAE,EAAE;IACR,QAAQ,CAAC,OAAO;;YAClB,MAAM,6BAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;KAAA;IACK,SAAS,CAAC,OAAO;;YACnB,MAAM,6BAAa,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YACb,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;KAAA;IACK,IAAI,CAAC,OAAO;;YACd,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;KAAA;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TriggerStrategy } from "@activepieces/pieces-framework";
|
|
2
|
+
export declare const updatedIssue: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").CustomAuthProperty<true, {
|
|
3
|
+
instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
5
|
+
apiToken: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
6
|
+
}>, {
|
|
7
|
+
jql: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
8
|
+
sanitizeJql: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updatedIssue = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const auth_1 = require("../../auth");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
10
|
+
const polling = {
|
|
11
|
+
strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
|
|
12
|
+
items: ({ auth, lastFetchEpochMS, propsValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
const { jql, sanitizeJql } = propsValue;
|
|
14
|
+
const searchQuery = `${jql ? jql + ' AND ' : ''}updated > '${(0, dayjs_1.default)(lastFetchEpochMS).format('YYYY-MM-DD HH:mm')}'`;
|
|
15
|
+
const issues = yield (0, common_1.searchIssuesByJql)({
|
|
16
|
+
auth,
|
|
17
|
+
jql: searchQuery,
|
|
18
|
+
maxResults: 50,
|
|
19
|
+
sanitizeJql: sanitizeJql !== null && sanitizeJql !== void 0 ? sanitizeJql : false
|
|
20
|
+
});
|
|
21
|
+
return issues.map((issue) => ({
|
|
22
|
+
epochMilliSeconds: Date.parse(issue.fields.updated),
|
|
23
|
+
data: issue,
|
|
24
|
+
}));
|
|
25
|
+
})
|
|
26
|
+
};
|
|
27
|
+
exports.updatedIssue = (0, pieces_framework_1.createTrigger)({
|
|
28
|
+
name: 'updated_issue',
|
|
29
|
+
displayName: 'Updated Issue',
|
|
30
|
+
description: 'Triggers when an issue is updated',
|
|
31
|
+
auth: auth_1.jiraCloudAuth,
|
|
32
|
+
type: pieces_framework_1.TriggerStrategy.POLLING,
|
|
33
|
+
props: {
|
|
34
|
+
jql: pieces_framework_1.Property.LongText({
|
|
35
|
+
displayName: 'JQL',
|
|
36
|
+
description: 'Use to filter issues watched',
|
|
37
|
+
required: false
|
|
38
|
+
}),
|
|
39
|
+
sanitizeJql: pieces_framework_1.Property.Checkbox({
|
|
40
|
+
displayName: 'Sanitize JQL',
|
|
41
|
+
required: false,
|
|
42
|
+
defaultValue: true,
|
|
43
|
+
}),
|
|
44
|
+
},
|
|
45
|
+
sampleData: {},
|
|
46
|
+
onEnable(context) {
|
|
47
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
yield pieces_common_1.pollingHelper.onEnable(polling, context);
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
onDisable(context) {
|
|
52
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
yield pieces_common_1.pollingHelper.onDisable(polling, context);
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
run(context) {
|
|
57
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
return yield pieces_common_1.pollingHelper.poll(polling, context);
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
test(context) {
|
|
62
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
return yield pieces_common_1.pollingHelper.test(polling, context);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=updated-issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updated-issue.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/jira-cloud/src/lib/triggers/updated-issue.ts"],"names":[],"mappings":";;;;AAAA,qEAAkI;AAClI,+DAAqF;AACrF,qCAA2C;AAC3C,sCAA8C;AAC9C,0DAA0B;AAE1B,MAAM,OAAO,GAAiG;IAC1G,QAAQ,EAAE,8BAAc,CAAC,SAAS;IAClC,KAAK,EAAE,CAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;QACxC,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,IAAA,eAAK,EAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAA;QAClH,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAiB,EAAC;YACnC,IAAI;YACJ,GAAG,EAAE,WAAW;YAChB,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK;SACpC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YACnD,IAAI,EAAE,KAAK;SACd,CAAC,CAAC,CAAC;IACR,CAAC,CAAA;CACJ,CAAA;AAEY,QAAA,YAAY,GAAG,IAAA,gCAAa,EAAC;IACtC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,mCAAmC;IAChD,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,kCAAe,CAAC,OAAO;IAC7B,KAAK,EAAE;QACH,GAAG,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,KAAK;SAClB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC3B,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI;SACrB,CAAC;KACL;IACD,UAAU,EAAE,EAAE;IACR,QAAQ,CAAC,OAAO;;YAClB,MAAM,6BAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;KAAA;IACK,SAAS,CAAC,OAAO;;YACnB,MAAM,6BAAa,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YACb,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;KAAA;IACK,IAAI,CAAC,OAAO;;YACd,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;KAAA;CACJ,CAAC,CAAA"}
|