runline 0.2.1 → 0.2.2
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/dist/plugins/actionNetwork/src/index.js +118 -25
- package/dist/plugins/activeCampaign/src/index.js +184 -38
- package/dist/plugins/adalo/src/index.js +40 -8
- package/dist/plugins/affinity/src/index.js +100 -20
- package/dist/plugins/agileCrm/src/index.js +115 -27
- package/dist/plugins/airtable/src/index.js +94 -19
- package/dist/plugins/airtop/src/index.js +266 -62
- package/dist/plugins/apiTemplateIo/src/index.js +25 -5
- package/dist/plugins/asana/src/index.js +195 -41
- package/dist/plugins/autopilot/src/index.js +39 -8
- package/dist/plugins/bambooHr/src/index.js +109 -22
- package/dist/plugins/bannerbear/src/index.js +36 -8
- package/dist/plugins/baserow/src/index.js +35 -7
- package/dist/plugins/beeminder/src/index.js +198 -40
- package/dist/plugins/bitly/src/index.js +46 -10
- package/dist/plugins/bitwarden/src/index.js +167 -36
- package/dist/plugins/box/src/index.js +172 -37
- package/dist/plugins/brandfetch/src/index.js +5 -1
- package/dist/plugins/brevo/src/index.js +136 -29
- package/dist/plugins/bubble/src/index.js +76 -17
- package/dist/plugins/chargebee/src/index.js +35 -7
- package/dist/plugins/circleci/src/index.js +50 -10
- package/dist/plugins/ciscoWebex/src/index.js +131 -27
- package/dist/plugins/clearbit/src/index.js +76 -17
- package/dist/plugins/clickup/src/index.js +500 -107
- package/dist/plugins/clockify/src/index.js +229 -47
- package/dist/plugins/cloudflare/src/index.js +28 -6
- package/dist/plugins/cockpit/src/index.js +54 -12
- package/dist/plugins/coda/src/index.js +81 -19
- package/dist/plugins/coingecko/src/index.js +157 -33
- package/dist/plugins/contentful/src/index.js +85 -17
- package/dist/plugins/convertkit/src/index.js +74 -18
- package/dist/plugins/copper/src/index.js +59 -11
- package/dist/plugins/cortex/src/index.js +55 -13
- package/dist/plugins/currents/src/index.js +310 -71
- package/dist/plugins/customerIo/src/index.js +112 -23
- package/dist/plugins/databricks/src/index.js +549 -115
- package/dist/plugins/deepl/src/index.js +26 -6
- package/dist/plugins/demio/src/index.js +56 -11
- package/dist/plugins/dhl/src/index.js +16 -3
- package/dist/plugins/discord/src/index.js +141 -31
- package/dist/plugins/discourse/src/index.js +136 -31
- package/dist/plugins/disqus/src/index.js +96 -20
- package/dist/plugins/docker/src/index.js +20 -4
- package/dist/plugins/drift/src/index.js +19 -5
- package/dist/plugins/dropbox/src/index.js +139 -30
- package/dist/plugins/dropcontact/src/index.js +21 -4
- package/dist/plugins/egoi/src/index.js +61 -15
- package/dist/plugins/elasticsearch/src/index.js +59 -13
- package/dist/plugins/emelia/src/index.js +95 -19
- package/dist/plugins/erpnext/src/index.js +74 -15
- package/dist/plugins/facebookGraph/src/index.js +52 -11
- package/dist/plugins/freshdesk/src/index.js +220 -48
- package/dist/plugins/freshservice/src/index.js +39 -9
- package/dist/plugins/freshworksCrm/src/index.js +58 -12
- package/dist/plugins/getresponse/src/index.js +87 -18
- package/dist/plugins/ghost/src/index.js +114 -26
- package/dist/plugins/github/src/index.js +483 -109
- package/dist/plugins/gitlab/src/index.js +193 -45
- package/dist/plugins/gong/src/index.js +68 -14
- package/dist/plugins/gotify/src/index.js +43 -9
- package/dist/plugins/gotowebinar/src/index.js +233 -47
- package/dist/plugins/grafana/src/index.js +92 -21
- package/dist/plugins/graphql/src/index.js +38 -8
- package/dist/plugins/grist/src/index.js +52 -10
- package/dist/plugins/hackernews/src/index.js +32 -6
- package/dist/plugins/halopsa/src/index.js +131 -26
- package/dist/plugins/harvest/src/index.js +182 -42
- package/dist/plugins/helpscout/src/index.js +153 -31
- package/dist/plugins/highlevel/src/index.js +291 -58
- package/dist/plugins/homeAssistant/src/index.js +124 -26
- package/dist/plugins/hubspot/src/index.js +163 -29
- package/dist/plugins/humanticAi/src/index.js +54 -5
- package/dist/plugins/hunter/src/index.js +21 -4
- package/dist/plugins/intercom/src/index.js +95 -20
- package/dist/plugins/iterable/src/index.js +96 -20
- package/dist/plugins/jenkins/src/index.js +75 -17
- package/dist/plugins/jira/src/index.js +193 -43
- package/dist/plugins/keap/src/index.js +222 -56
- package/dist/plugins/kobotoolbox/src/index.js +113 -25
- package/dist/plugins/lemlist/src/index.js +79 -18
- package/dist/plugins/linear/src/index.js +86 -19
- package/dist/plugins/lingvanex/src/index.js +38 -8
- package/dist/plugins/linkedin/src/index.js +37 -8
- package/dist/plugins/lonescale/src/index.js +41 -9
- package/dist/plugins/magento/src/index.js +98 -27
- package/dist/plugins/mailcheck/src/index.js +11 -2
- package/dist/plugins/mailchimp/src/index.js +193 -42
- package/dist/plugins/mailerlite/src/index.js +61 -12
- package/dist/plugins/mailgun/src/index.js +39 -7
- package/dist/plugins/mailjet/src/index.js +141 -30
- package/dist/plugins/mandrill/src/index.js +67 -14
- package/dist/plugins/marketstack/src/index.js +56 -10
- package/dist/plugins/matrix/src/index.js +97 -20
- package/dist/plugins/mattermost/src/index.js +124 -26
- package/dist/plugins/mautic/src/index.js +129 -26
- package/dist/plugins/medium/src/index.js +64 -13
- package/dist/plugins/messagebird/src/index.js +80 -15
- package/dist/plugins/metabase/src/index.js +57 -12
- package/dist/plugins/misp/src/index.js +135 -33
- package/dist/plugins/mocean/src/index.js +33 -7
- package/dist/plugins/monday/src/index.js +97 -23
- package/dist/plugins/monicaCrm/src/index.js +112 -23
- package/dist/plugins/msg91/src/index.js +11 -2
- package/dist/plugins/nasa/src/index.js +108 -21
- package/dist/plugins/netlify/src/index.js +28 -6
- package/dist/plugins/netscalerAdc/src/index.js +144 -29
- package/dist/plugins/nextcloud/src/index.js +103 -20
- package/dist/plugins/nocodb/src/index.js +57 -11
- package/dist/plugins/notion/src/index.js +148 -37
- package/dist/plugins/npm/src/index.js +59 -12
- package/dist/plugins/odoo/src/index.js +102 -20
- package/dist/plugins/okta/src/index.js +50 -10
- package/dist/plugins/oneSimpleApi/src/index.js +84 -17
- package/dist/plugins/onfleet/src/index.js +139 -32
- package/dist/plugins/openThesaurus/src/index.js +46 -9
- package/dist/plugins/openweathermap/src/index.js +31 -6
- package/dist/plugins/oura/src/index.js +36 -7
- package/dist/plugins/paddle/src/index.js +80 -17
- package/dist/plugins/pagerduty/src/index.js +53 -12
- package/dist/plugins/paypal/src/index.js +51 -11
- package/dist/plugins/peekalink/src/index.js +12 -3
- package/dist/plugins/phantombuster/src/index.js +39 -8
- package/dist/plugins/philipsHue/src/index.js +64 -13
- package/dist/plugins/pipedrive/src/index.js +167 -45
- package/dist/plugins/plivo/src/index.js +43 -8
- package/dist/plugins/postbin/src/index.js +9 -2
- package/dist/plugins/posthog/src/index.js +50 -13
- package/dist/plugins/profitwell/src/index.js +24 -5
- package/dist/plugins/pushbullet/src/index.js +45 -9
- package/dist/plugins/pushcut/src/index.js +31 -6
- package/dist/plugins/pushover/src/index.js +51 -10
- package/dist/plugins/quickbase/src/index.js +66 -13
- package/dist/plugins/quickbooks/src/index.js +86 -19
- package/dist/plugins/quickchart/src/index.js +35 -7
- package/dist/plugins/raindrop/src/index.js +54 -13
- package/dist/plugins/reddit/src/index.js +73 -18
- package/dist/plugins/rocketchat/src/index.js +47 -9
- package/dist/plugins/rundeck/src/index.js +26 -5
- package/dist/plugins/salesforce/src/index.js +161 -31
- package/dist/plugins/salesmate/src/index.js +75 -16
- package/dist/plugins/securityScorecard/src/index.js +73 -15
- package/dist/plugins/segment/src/index.js +21 -4
- package/dist/plugins/sendgrid/src/index.js +102 -24
- package/dist/plugins/sendy/src/index.js +54 -11
- package/dist/plugins/sentry/src/index.js +174 -34
- package/dist/plugins/servicenow/src/index.js +120 -27
- package/dist/plugins/shopify/src/index.js +53 -12
- package/dist/plugins/signl4/src/index.js +16 -3
- package/dist/plugins/slack/src/index.js +407 -105
- package/dist/plugins/sms77/src/index.js +26 -5
- package/dist/plugins/splunk/src/index.js +186 -45
- package/dist/plugins/spotify/src/index.js +265 -66
- package/dist/plugins/stackby/src/index.js +18 -6
- package/dist/plugins/storyblok/src/index.js +57 -11
- package/dist/plugins/strapi/src/index.js +63 -12
- package/dist/plugins/strava/src/index.js +58 -13
- package/dist/plugins/stripe/src/index.js +143 -30
- package/dist/plugins/supabase/src/index.js +49 -10
- package/dist/plugins/syncromsp/src/index.js +245 -67
- package/dist/plugins/tapfiliate/src/index.js +57 -14
- package/dist/plugins/telegram/src/index.js +202 -39
- package/dist/plugins/thehive/src/index.js +271 -66
- package/dist/plugins/thehiveProject/src/index.js +457 -89
- package/dist/plugins/todoist/src/index.js +326 -77
- package/dist/plugins/travisci/src/index.js +35 -8
- package/dist/plugins/trello/src/index.js +204 -46
- package/dist/plugins/twake/src/index.js +10 -2
- package/dist/plugins/twilio/src/index.js +56 -11
- package/dist/plugins/twist/src/index.js +241 -48
- package/dist/plugins/twitter/src/index.js +128 -30
- package/dist/plugins/unleashedSoftware/src/index.js +30 -6
- package/dist/plugins/uplead/src/index.js +9 -2
- package/dist/plugins/uproc/src/index.js +31 -6
- package/dist/plugins/uptimerobot/src/index.js +119 -25
- package/dist/plugins/urlscanio/src/index.js +25 -6
- package/dist/plugins/vero/src/index.js +68 -13
- package/dist/plugins/vonage/src/index.js +32 -6
- package/dist/plugins/wekan/src/index.js +297 -52
- package/dist/plugins/woocommerce/src/index.js +57 -12
- package/dist/plugins/wordpress/src/index.js +94 -18
- package/dist/plugins/xero/src/index.js +79 -13
- package/dist/plugins/yourls/src/index.js +33 -6
- package/dist/plugins/zammad/src/index.js +139 -36
- package/dist/plugins/zendesk/src/index.js +201 -48
- package/dist/plugins/zoho/src/index.js +88 -21
- package/dist/plugins/zoom/src/index.js +41 -7
- package/dist/plugins/zulip/src/index.js +101 -20
- package/package.json +1 -1
|
@@ -8,9 +8,16 @@ async function apiRequest(domain, email, apiToken, method, endpoint, body, qs) {
|
|
|
8
8
|
}
|
|
9
9
|
const opts = {
|
|
10
10
|
method,
|
|
11
|
-
headers: {
|
|
11
|
+
headers: {
|
|
12
|
+
Authorization: `Basic ${btoa(`${email}:${apiToken}`)}`,
|
|
13
|
+
"Content-Type": "application/json",
|
|
14
|
+
Accept: "application/json",
|
|
15
|
+
},
|
|
12
16
|
};
|
|
13
|
-
if (body &&
|
|
17
|
+
if (body &&
|
|
18
|
+
Object.keys(body).length > 0 &&
|
|
19
|
+
method !== "GET" &&
|
|
20
|
+
method !== "DELETE")
|
|
14
21
|
opts.body = JSON.stringify(body);
|
|
15
22
|
const res = await fetch(url.toString(), opts);
|
|
16
23
|
if (!res.ok)
|
|
@@ -37,26 +44,69 @@ export default function jira(rl) {
|
|
|
37
44
|
rl.setName("jira");
|
|
38
45
|
rl.setVersion("0.1.0");
|
|
39
46
|
rl.setConnectionSchema({
|
|
40
|
-
domain: {
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
domain: {
|
|
48
|
+
type: "string",
|
|
49
|
+
required: true,
|
|
50
|
+
description: "Jira domain (e.g. https://mycompany.atlassian.net)",
|
|
51
|
+
env: "JIRA_DOMAIN",
|
|
52
|
+
},
|
|
53
|
+
email: {
|
|
54
|
+
type: "string",
|
|
55
|
+
required: true,
|
|
56
|
+
description: "Jira account email",
|
|
57
|
+
env: "JIRA_EMAIL",
|
|
58
|
+
},
|
|
59
|
+
apiToken: {
|
|
60
|
+
type: "string",
|
|
61
|
+
required: true,
|
|
62
|
+
description: "Jira API token",
|
|
63
|
+
env: "JIRA_API_TOKEN",
|
|
64
|
+
},
|
|
43
65
|
});
|
|
44
66
|
// ── Issue ───────────────────────────────────────────
|
|
45
67
|
rl.registerAction("issue.create", {
|
|
46
68
|
description: "Create an issue",
|
|
47
69
|
inputSchema: {
|
|
48
|
-
projectKey: {
|
|
49
|
-
|
|
70
|
+
projectKey: {
|
|
71
|
+
type: "string",
|
|
72
|
+
required: true,
|
|
73
|
+
description: "Project key (e.g. PROJ)",
|
|
74
|
+
},
|
|
75
|
+
issueType: {
|
|
76
|
+
type: "string",
|
|
77
|
+
required: true,
|
|
78
|
+
description: "Issue type (Bug, Task, Story, Epic...)",
|
|
79
|
+
},
|
|
50
80
|
summary: { type: "string", required: true, description: "Issue summary" },
|
|
51
|
-
description: {
|
|
52
|
-
|
|
53
|
-
|
|
81
|
+
description: {
|
|
82
|
+
type: "string",
|
|
83
|
+
required: false,
|
|
84
|
+
description: "Description",
|
|
85
|
+
},
|
|
86
|
+
assigneeId: {
|
|
87
|
+
type: "string",
|
|
88
|
+
required: false,
|
|
89
|
+
description: "Assignee account ID",
|
|
90
|
+
},
|
|
91
|
+
priority: {
|
|
92
|
+
type: "string",
|
|
93
|
+
required: false,
|
|
94
|
+
description: "Priority name (Highest, High, Medium, Low, Lowest)",
|
|
95
|
+
},
|
|
54
96
|
labels: { type: "array", required: false, description: "Labels" },
|
|
55
|
-
parentKey: {
|
|
56
|
-
|
|
97
|
+
parentKey: {
|
|
98
|
+
type: "string",
|
|
99
|
+
required: false,
|
|
100
|
+
description: "Parent issue key (for subtasks)",
|
|
101
|
+
},
|
|
102
|
+
customFields: {
|
|
103
|
+
type: "object",
|
|
104
|
+
required: false,
|
|
105
|
+
description: "Custom fields",
|
|
106
|
+
},
|
|
57
107
|
},
|
|
58
108
|
async execute(input, ctx) {
|
|
59
|
-
const { projectKey, issueType, summary, description: desc, assigneeId, priority, labels, parentKey, customFields } = input;
|
|
109
|
+
const { projectKey, issueType, summary, description: desc, assigneeId, priority, labels, parentKey, customFields, } = input;
|
|
60
110
|
const fields = {
|
|
61
111
|
project: { key: projectKey },
|
|
62
112
|
issuetype: { name: issueType },
|
|
@@ -80,9 +130,21 @@ export default function jira(rl) {
|
|
|
80
130
|
rl.registerAction("issue.get", {
|
|
81
131
|
description: "Get an issue",
|
|
82
132
|
inputSchema: {
|
|
83
|
-
issueKey: {
|
|
84
|
-
|
|
85
|
-
|
|
133
|
+
issueKey: {
|
|
134
|
+
type: "string",
|
|
135
|
+
required: true,
|
|
136
|
+
description: "Issue key (e.g. PROJ-123)",
|
|
137
|
+
},
|
|
138
|
+
fields: {
|
|
139
|
+
type: "string",
|
|
140
|
+
required: false,
|
|
141
|
+
description: "Comma-separated fields to return",
|
|
142
|
+
},
|
|
143
|
+
expand: {
|
|
144
|
+
type: "string",
|
|
145
|
+
required: false,
|
|
146
|
+
description: "Comma-separated expansions",
|
|
147
|
+
},
|
|
86
148
|
},
|
|
87
149
|
async execute(input, ctx) {
|
|
88
150
|
const { issueKey, fields, expand } = (input ?? {});
|
|
@@ -98,8 +160,16 @@ export default function jira(rl) {
|
|
|
98
160
|
description: "Search issues using JQL",
|
|
99
161
|
inputSchema: {
|
|
100
162
|
jql: { type: "string", required: true, description: "JQL query" },
|
|
101
|
-
fields: {
|
|
102
|
-
|
|
163
|
+
fields: {
|
|
164
|
+
type: "array",
|
|
165
|
+
required: false,
|
|
166
|
+
description: "Fields to return",
|
|
167
|
+
},
|
|
168
|
+
maxResults: {
|
|
169
|
+
type: "number",
|
|
170
|
+
required: false,
|
|
171
|
+
description: "Max results",
|
|
172
|
+
},
|
|
103
173
|
startAt: { type: "number", required: false, description: "Start index" },
|
|
104
174
|
},
|
|
105
175
|
async execute(input, ctx) {
|
|
@@ -119,8 +189,16 @@ export default function jira(rl) {
|
|
|
119
189
|
inputSchema: {
|
|
120
190
|
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
121
191
|
fields: { type: "object", required: false, description: "Fields to set" },
|
|
122
|
-
update: {
|
|
123
|
-
|
|
192
|
+
update: {
|
|
193
|
+
type: "object",
|
|
194
|
+
required: false,
|
|
195
|
+
description: "Update operations",
|
|
196
|
+
},
|
|
197
|
+
transition: {
|
|
198
|
+
type: "object",
|
|
199
|
+
required: false,
|
|
200
|
+
description: "Transition {id}",
|
|
201
|
+
},
|
|
124
202
|
},
|
|
125
203
|
async execute(input, ctx) {
|
|
126
204
|
const { issueKey, fields, update, transition } = input;
|
|
@@ -136,19 +214,34 @@ export default function jira(rl) {
|
|
|
136
214
|
});
|
|
137
215
|
rl.registerAction("issue.delete", {
|
|
138
216
|
description: "Delete an issue",
|
|
139
|
-
inputSchema: {
|
|
140
|
-
|
|
217
|
+
inputSchema: {
|
|
218
|
+
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
219
|
+
},
|
|
220
|
+
async execute(input, ctx) {
|
|
221
|
+
await jr(ctx, "DELETE", `/api/2/issue/${input.issueKey}`);
|
|
222
|
+
return { success: true };
|
|
223
|
+
},
|
|
141
224
|
});
|
|
142
225
|
rl.registerAction("issue.transition", {
|
|
143
226
|
description: "Transition an issue to a new status",
|
|
144
227
|
inputSchema: {
|
|
145
228
|
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
146
|
-
transitionId: {
|
|
147
|
-
|
|
229
|
+
transitionId: {
|
|
230
|
+
type: "string",
|
|
231
|
+
required: true,
|
|
232
|
+
description: "Transition ID",
|
|
233
|
+
},
|
|
234
|
+
comment: {
|
|
235
|
+
type: "string",
|
|
236
|
+
required: false,
|
|
237
|
+
description: "Comment to add",
|
|
238
|
+
},
|
|
148
239
|
},
|
|
149
240
|
async execute(input, ctx) {
|
|
150
241
|
const { issueKey, transitionId, comment } = input;
|
|
151
|
-
const body = {
|
|
242
|
+
const body = {
|
|
243
|
+
transition: { id: transitionId },
|
|
244
|
+
};
|
|
152
245
|
if (comment)
|
|
153
246
|
body.update = { comment: [{ add: { body: comment } }] };
|
|
154
247
|
return jr(ctx, "POST", `/api/2/issue/${issueKey}/transitions`, body);
|
|
@@ -156,13 +249,21 @@ export default function jira(rl) {
|
|
|
156
249
|
});
|
|
157
250
|
rl.registerAction("issue.getTransitions", {
|
|
158
251
|
description: "Get available transitions for an issue",
|
|
159
|
-
inputSchema: {
|
|
160
|
-
|
|
252
|
+
inputSchema: {
|
|
253
|
+
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
254
|
+
},
|
|
255
|
+
async execute(input, ctx) {
|
|
256
|
+
return jr(ctx, "GET", `/api/2/issue/${input.issueKey}/transitions`);
|
|
257
|
+
},
|
|
161
258
|
});
|
|
162
259
|
rl.registerAction("issue.getChangelog", {
|
|
163
260
|
description: "Get issue changelog",
|
|
164
|
-
inputSchema: {
|
|
165
|
-
|
|
261
|
+
inputSchema: {
|
|
262
|
+
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
263
|
+
},
|
|
264
|
+
async execute(input, ctx) {
|
|
265
|
+
return jr(ctx, "GET", `/api/2/issue/${input.issueKey}/changelog`);
|
|
266
|
+
},
|
|
166
267
|
});
|
|
167
268
|
rl.registerAction("issue.notify", {
|
|
168
269
|
description: "Send notification about an issue",
|
|
@@ -170,11 +271,19 @@ export default function jira(rl) {
|
|
|
170
271
|
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
171
272
|
subject: { type: "string", required: true, description: "Email subject" },
|
|
172
273
|
htmlBody: { type: "string", required: true, description: "HTML body" },
|
|
173
|
-
to: {
|
|
274
|
+
to: {
|
|
275
|
+
type: "object",
|
|
276
|
+
required: true,
|
|
277
|
+
description: "{users: [{accountId}], groups: [{name}]}",
|
|
278
|
+
},
|
|
174
279
|
},
|
|
175
280
|
async execute(input, ctx) {
|
|
176
281
|
const { issueKey, subject, htmlBody, to } = input;
|
|
177
|
-
return jr(ctx, "POST", `/api/2/issue/${issueKey}/notify`, {
|
|
282
|
+
return jr(ctx, "POST", `/api/2/issue/${issueKey}/notify`, {
|
|
283
|
+
subject,
|
|
284
|
+
htmlBody,
|
|
285
|
+
to,
|
|
286
|
+
});
|
|
178
287
|
},
|
|
179
288
|
});
|
|
180
289
|
// ── Issue Comment ───────────────────────────────────
|
|
@@ -186,38 +295,79 @@ export default function jira(rl) {
|
|
|
186
295
|
},
|
|
187
296
|
async execute(input, ctx) {
|
|
188
297
|
const { issueKey, body: commentBody } = input;
|
|
189
|
-
return jr(ctx, "POST", `/api/2/issue/${issueKey}/comment`, {
|
|
298
|
+
return jr(ctx, "POST", `/api/2/issue/${issueKey}/comment`, {
|
|
299
|
+
body: commentBody,
|
|
300
|
+
});
|
|
190
301
|
},
|
|
191
302
|
});
|
|
192
303
|
rl.registerAction("issueComment.get", {
|
|
193
304
|
description: "Get a comment",
|
|
194
|
-
inputSchema: {
|
|
195
|
-
|
|
305
|
+
inputSchema: {
|
|
306
|
+
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
307
|
+
commentId: { type: "string", required: true, description: "Comment ID" },
|
|
308
|
+
},
|
|
309
|
+
async execute(input, ctx) {
|
|
310
|
+
const { issueKey, commentId } = input;
|
|
311
|
+
return jr(ctx, "GET", `/api/2/issue/${issueKey}/comment/${commentId}`);
|
|
312
|
+
},
|
|
196
313
|
});
|
|
197
314
|
rl.registerAction("issueComment.list", {
|
|
198
315
|
description: "List comments on an issue",
|
|
199
|
-
inputSchema: {
|
|
200
|
-
|
|
316
|
+
inputSchema: {
|
|
317
|
+
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
318
|
+
},
|
|
319
|
+
async execute(input, ctx) {
|
|
320
|
+
return jr(ctx, "GET", `/api/2/issue/${input.issueKey}/comment`);
|
|
321
|
+
},
|
|
201
322
|
});
|
|
202
323
|
rl.registerAction("issueComment.update", {
|
|
203
324
|
description: "Update a comment",
|
|
204
|
-
inputSchema: {
|
|
205
|
-
|
|
325
|
+
inputSchema: {
|
|
326
|
+
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
327
|
+
commentId: { type: "string", required: true, description: "Comment ID" },
|
|
328
|
+
body: { type: "string", required: true, description: "New body" },
|
|
329
|
+
},
|
|
330
|
+
async execute(input, ctx) {
|
|
331
|
+
const { issueKey, commentId, body: b } = input;
|
|
332
|
+
return jr(ctx, "PUT", `/api/2/issue/${issueKey}/comment/${commentId}`, {
|
|
333
|
+
body: b,
|
|
334
|
+
});
|
|
335
|
+
},
|
|
206
336
|
});
|
|
207
337
|
rl.registerAction("issueComment.delete", {
|
|
208
338
|
description: "Delete a comment",
|
|
209
|
-
inputSchema: {
|
|
210
|
-
|
|
339
|
+
inputSchema: {
|
|
340
|
+
issueKey: { type: "string", required: true, description: "Issue key" },
|
|
341
|
+
commentId: { type: "string", required: true, description: "Comment ID" },
|
|
342
|
+
},
|
|
343
|
+
async execute(input, ctx) {
|
|
344
|
+
const { issueKey, commentId } = input;
|
|
345
|
+
await jr(ctx, "DELETE", `/api/2/issue/${issueKey}/comment/${commentId}`);
|
|
346
|
+
return { success: true };
|
|
347
|
+
},
|
|
211
348
|
});
|
|
212
349
|
// ── User ────────────────────────────────────────────
|
|
213
350
|
rl.registerAction("user.get", {
|
|
214
351
|
description: "Get a user by account ID",
|
|
215
|
-
inputSchema: {
|
|
216
|
-
|
|
352
|
+
inputSchema: {
|
|
353
|
+
accountId: { type: "string", required: true, description: "Account ID" },
|
|
354
|
+
},
|
|
355
|
+
async execute(input, ctx) {
|
|
356
|
+
return jr(ctx, "GET", "/api/2/user", undefined, {
|
|
357
|
+
accountId: input.accountId,
|
|
358
|
+
});
|
|
359
|
+
},
|
|
217
360
|
});
|
|
218
361
|
rl.registerAction("user.search", {
|
|
219
362
|
description: "Search users",
|
|
220
|
-
inputSchema: {
|
|
363
|
+
inputSchema: {
|
|
364
|
+
query: { type: "string", required: true, description: "Search query" },
|
|
365
|
+
maxResults: {
|
|
366
|
+
type: "number",
|
|
367
|
+
required: false,
|
|
368
|
+
description: "Max results",
|
|
369
|
+
},
|
|
370
|
+
},
|
|
221
371
|
async execute(input, ctx) {
|
|
222
372
|
const { query, maxResults } = input;
|
|
223
373
|
const qs = { query };
|