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
|
@@ -10,7 +10,10 @@ async function apiRequest(baseUrl, apiKey, method, endpoint, body, qs) {
|
|
|
10
10
|
method,
|
|
11
11
|
headers: { "Api-Key": apiKey, "Content-Type": "application/json" },
|
|
12
12
|
};
|
|
13
|
-
if (body &&
|
|
13
|
+
if (body &&
|
|
14
|
+
Object.keys(body).length > 0 &&
|
|
15
|
+
method !== "GET" &&
|
|
16
|
+
method !== "DELETE")
|
|
14
17
|
opts.body = JSON.stringify(body);
|
|
15
18
|
const res = await fetch(url.toString(), opts);
|
|
16
19
|
if (!res.ok)
|
|
@@ -21,8 +24,19 @@ export default function iterable(rl) {
|
|
|
21
24
|
rl.setName("iterable");
|
|
22
25
|
rl.setVersion("0.1.0");
|
|
23
26
|
rl.setConnectionSchema({
|
|
24
|
-
apiKey: {
|
|
25
|
-
|
|
27
|
+
apiKey: {
|
|
28
|
+
type: "string",
|
|
29
|
+
required: true,
|
|
30
|
+
description: "Iterable API key",
|
|
31
|
+
env: "ITERABLE_API_KEY",
|
|
32
|
+
},
|
|
33
|
+
region: {
|
|
34
|
+
type: "string",
|
|
35
|
+
required: false,
|
|
36
|
+
description: "API base URL (default: https://api.iterable.com)",
|
|
37
|
+
env: "ITERABLE_REGION",
|
|
38
|
+
default: "https://api.iterable.com",
|
|
39
|
+
},
|
|
26
40
|
});
|
|
27
41
|
const conn = (ctx) => ({
|
|
28
42
|
baseUrl: (ctx.connection.config.region ?? "https://api.iterable.com").replace(/\/$/, ""),
|
|
@@ -33,24 +47,43 @@ export default function iterable(rl) {
|
|
|
33
47
|
description: "Track events for users (bulk). Each event requires email or userId, plus eventName.",
|
|
34
48
|
inputSchema: {
|
|
35
49
|
events: {
|
|
36
|
-
type: "array",
|
|
50
|
+
type: "array",
|
|
51
|
+
required: true,
|
|
37
52
|
description: "Array of event objects. Each needs: eventName (string, required), email or id (string, one required), dataFields (object, optional), createdAt (unix timestamp, optional)",
|
|
38
53
|
},
|
|
39
54
|
},
|
|
40
55
|
async execute(input, ctx) {
|
|
41
56
|
const { events } = input;
|
|
42
57
|
const { baseUrl, apiKey } = conn(ctx);
|
|
43
|
-
return apiRequest(baseUrl, apiKey, "POST", "/events/trackBulk", {
|
|
58
|
+
return apiRequest(baseUrl, apiKey, "POST", "/events/trackBulk", {
|
|
59
|
+
events,
|
|
60
|
+
});
|
|
44
61
|
},
|
|
45
62
|
});
|
|
46
63
|
// ── User ────────────────────────────────────────────
|
|
47
64
|
rl.registerAction("user.upsert", {
|
|
48
65
|
description: "Create or update a user",
|
|
49
66
|
inputSchema: {
|
|
50
|
-
identifier: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
identifier: {
|
|
68
|
+
type: "string",
|
|
69
|
+
required: true,
|
|
70
|
+
description: "'email' or 'userId'",
|
|
71
|
+
},
|
|
72
|
+
value: {
|
|
73
|
+
type: "string",
|
|
74
|
+
required: true,
|
|
75
|
+
description: "The email address or userId value",
|
|
76
|
+
},
|
|
77
|
+
preferUserId: {
|
|
78
|
+
type: "boolean",
|
|
79
|
+
required: false,
|
|
80
|
+
description: "When identifier is userId, prefer userId for lookups (default false)",
|
|
81
|
+
},
|
|
82
|
+
dataFields: {
|
|
83
|
+
type: "object",
|
|
84
|
+
required: false,
|
|
85
|
+
description: "User data fields as key-value pairs",
|
|
86
|
+
},
|
|
54
87
|
},
|
|
55
88
|
async execute(input, ctx) {
|
|
56
89
|
const { identifier, value, preferUserId, dataFields } = input;
|
|
@@ -72,8 +105,16 @@ export default function iterable(rl) {
|
|
|
72
105
|
rl.registerAction("user.get", {
|
|
73
106
|
description: "Get a user by email or userId",
|
|
74
107
|
inputSchema: {
|
|
75
|
-
by: {
|
|
76
|
-
|
|
108
|
+
by: {
|
|
109
|
+
type: "string",
|
|
110
|
+
required: true,
|
|
111
|
+
description: "'email' or 'userId'",
|
|
112
|
+
},
|
|
113
|
+
value: {
|
|
114
|
+
type: "string",
|
|
115
|
+
required: true,
|
|
116
|
+
description: "The email address or userId",
|
|
117
|
+
},
|
|
77
118
|
},
|
|
78
119
|
async execute(input, ctx) {
|
|
79
120
|
const { by, value } = input;
|
|
@@ -88,8 +129,16 @@ export default function iterable(rl) {
|
|
|
88
129
|
rl.registerAction("user.delete", {
|
|
89
130
|
description: "Delete a user by email or userId",
|
|
90
131
|
inputSchema: {
|
|
91
|
-
by: {
|
|
92
|
-
|
|
132
|
+
by: {
|
|
133
|
+
type: "string",
|
|
134
|
+
required: true,
|
|
135
|
+
description: "'email' or 'userId'",
|
|
136
|
+
},
|
|
137
|
+
value: {
|
|
138
|
+
type: "string",
|
|
139
|
+
required: true,
|
|
140
|
+
description: "The email address or userId",
|
|
141
|
+
},
|
|
93
142
|
},
|
|
94
143
|
async execute(input, ctx) {
|
|
95
144
|
const { by, value } = input;
|
|
@@ -105,24 +154,51 @@ export default function iterable(rl) {
|
|
|
105
154
|
description: "Subscribe users to a list",
|
|
106
155
|
inputSchema: {
|
|
107
156
|
listId: { type: "number", required: true, description: "List ID" },
|
|
108
|
-
identifier: {
|
|
109
|
-
|
|
157
|
+
identifier: {
|
|
158
|
+
type: "string",
|
|
159
|
+
required: true,
|
|
160
|
+
description: "'email' or 'userId'",
|
|
161
|
+
},
|
|
162
|
+
values: {
|
|
163
|
+
type: "array",
|
|
164
|
+
required: true,
|
|
165
|
+
description: "Array of email addresses or userIds to subscribe",
|
|
166
|
+
},
|
|
110
167
|
},
|
|
111
168
|
async execute(input, ctx) {
|
|
112
169
|
const { listId, identifier, values } = input;
|
|
113
170
|
const { baseUrl, apiKey } = conn(ctx);
|
|
114
171
|
const subscribers = values.map((v) => identifier === "email" ? { email: v } : { userId: v });
|
|
115
|
-
return apiRequest(baseUrl, apiKey, "POST", "/lists/subscribe", {
|
|
172
|
+
return apiRequest(baseUrl, apiKey, "POST", "/lists/subscribe", {
|
|
173
|
+
listId,
|
|
174
|
+
subscribers,
|
|
175
|
+
});
|
|
116
176
|
},
|
|
117
177
|
});
|
|
118
178
|
rl.registerAction("userList.remove", {
|
|
119
179
|
description: "Unsubscribe users from a list",
|
|
120
180
|
inputSchema: {
|
|
121
181
|
listId: { type: "number", required: true, description: "List ID" },
|
|
122
|
-
identifier: {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
182
|
+
identifier: {
|
|
183
|
+
type: "string",
|
|
184
|
+
required: true,
|
|
185
|
+
description: "'email' or 'userId'",
|
|
186
|
+
},
|
|
187
|
+
values: {
|
|
188
|
+
type: "array",
|
|
189
|
+
required: true,
|
|
190
|
+
description: "Array of email addresses or userIds to unsubscribe",
|
|
191
|
+
},
|
|
192
|
+
campaignId: {
|
|
193
|
+
type: "number",
|
|
194
|
+
required: false,
|
|
195
|
+
description: "Campaign ID for attribution",
|
|
196
|
+
},
|
|
197
|
+
channelUnsubscribe: {
|
|
198
|
+
type: "boolean",
|
|
199
|
+
required: false,
|
|
200
|
+
description: "Unsubscribe from channel",
|
|
201
|
+
},
|
|
126
202
|
},
|
|
127
203
|
async execute(input, ctx) {
|
|
128
204
|
const { listId, identifier, values, campaignId, channelUnsubscribe } = input;
|
|
@@ -6,7 +6,9 @@ async function apiRequest(baseUrl, username, apiToken, method, endpoint, body, c
|
|
|
6
6
|
url.searchParams.set(k, String(v));
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
const headers = {
|
|
9
|
+
const headers = {
|
|
10
|
+
Authorization: `Basic ${btoa(`${username}:${apiToken}`)}`,
|
|
11
|
+
};
|
|
10
12
|
if (contentType)
|
|
11
13
|
headers["Content-Type"] = contentType;
|
|
12
14
|
const opts = { method, headers };
|
|
@@ -35,20 +37,44 @@ export default function jenkins(rl) {
|
|
|
35
37
|
rl.setName("jenkins");
|
|
36
38
|
rl.setVersion("0.1.0");
|
|
37
39
|
rl.setConnectionSchema({
|
|
38
|
-
baseUrl: {
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
baseUrl: {
|
|
41
|
+
type: "string",
|
|
42
|
+
required: true,
|
|
43
|
+
description: "Jenkins URL (e.g. https://jenkins.example.com)",
|
|
44
|
+
env: "JENKINS_URL",
|
|
45
|
+
},
|
|
46
|
+
username: {
|
|
47
|
+
type: "string",
|
|
48
|
+
required: true,
|
|
49
|
+
description: "Jenkins username",
|
|
50
|
+
env: "JENKINS_USER",
|
|
51
|
+
},
|
|
52
|
+
apiToken: {
|
|
53
|
+
type: "string",
|
|
54
|
+
required: true,
|
|
55
|
+
description: "Jenkins API token",
|
|
56
|
+
env: "JENKINS_TOKEN",
|
|
57
|
+
},
|
|
41
58
|
});
|
|
42
59
|
// ── Job ─────────────────────────────────────────────
|
|
43
60
|
rl.registerAction("job.trigger", {
|
|
44
61
|
description: "Trigger a job build",
|
|
45
62
|
inputSchema: {
|
|
46
|
-
jobName: {
|
|
47
|
-
|
|
63
|
+
jobName: {
|
|
64
|
+
type: "string",
|
|
65
|
+
required: true,
|
|
66
|
+
description: "Job name (URL-encoded if nested)",
|
|
67
|
+
},
|
|
68
|
+
parameters: {
|
|
69
|
+
type: "object",
|
|
70
|
+
required: false,
|
|
71
|
+
description: "Build parameters as key-value pairs",
|
|
72
|
+
},
|
|
48
73
|
},
|
|
49
74
|
async execute(input, ctx) {
|
|
50
75
|
const { jobName, parameters } = input;
|
|
51
|
-
if (parameters &&
|
|
76
|
+
if (parameters &&
|
|
77
|
+
Object.keys(parameters).length > 0) {
|
|
52
78
|
const qs = parameters;
|
|
53
79
|
await jk(ctx, "POST", `/job/${jobName}/buildWithParameters`, undefined, undefined, qs);
|
|
54
80
|
}
|
|
@@ -60,7 +86,9 @@ export default function jenkins(rl) {
|
|
|
60
86
|
});
|
|
61
87
|
rl.registerAction("job.getParameters", {
|
|
62
88
|
description: "Get build parameters for a job",
|
|
63
|
-
inputSchema: {
|
|
89
|
+
inputSchema: {
|
|
90
|
+
jobName: { type: "string", required: true, description: "Job name" },
|
|
91
|
+
},
|
|
64
92
|
async execute(input, ctx) {
|
|
65
93
|
const data = (await jk(ctx, "GET", `/job/${input.jobName}/api/json`, undefined, undefined, { tree: "actions[parameterDefinitions[*]]" }));
|
|
66
94
|
return data.actions;
|
|
@@ -69,12 +97,20 @@ export default function jenkins(rl) {
|
|
|
69
97
|
rl.registerAction("job.copy", {
|
|
70
98
|
description: "Copy/create a job from an existing one",
|
|
71
99
|
inputSchema: {
|
|
72
|
-
fromJob: {
|
|
100
|
+
fromJob: {
|
|
101
|
+
type: "string",
|
|
102
|
+
required: true,
|
|
103
|
+
description: "Source job name",
|
|
104
|
+
},
|
|
73
105
|
newName: { type: "string", required: true, description: "New job name" },
|
|
74
106
|
},
|
|
75
107
|
async execute(input, ctx) {
|
|
76
108
|
const { fromJob, newName } = input;
|
|
77
|
-
await jk(ctx, "POST", "/createItem", undefined, undefined, {
|
|
109
|
+
await jk(ctx, "POST", "/createItem", undefined, undefined, {
|
|
110
|
+
name: newName,
|
|
111
|
+
mode: "copy",
|
|
112
|
+
from: fromJob,
|
|
113
|
+
});
|
|
78
114
|
return { success: true };
|
|
79
115
|
},
|
|
80
116
|
});
|
|
@@ -82,7 +118,11 @@ export default function jenkins(rl) {
|
|
|
82
118
|
description: "Create a job from XML config",
|
|
83
119
|
inputSchema: {
|
|
84
120
|
name: { type: "string", required: true, description: "Job name" },
|
|
85
|
-
xml: {
|
|
121
|
+
xml: {
|
|
122
|
+
type: "string",
|
|
123
|
+
required: true,
|
|
124
|
+
description: "Jenkins job config XML",
|
|
125
|
+
},
|
|
86
126
|
},
|
|
87
127
|
async execute(input, ctx) {
|
|
88
128
|
const { name, xml } = input;
|
|
@@ -107,26 +147,44 @@ export default function jenkins(rl) {
|
|
|
107
147
|
// ── Instance ────────────────────────────────────────
|
|
108
148
|
rl.registerAction("instance.quietDown", {
|
|
109
149
|
description: "Put Jenkins into quiet mode (no new builds)",
|
|
110
|
-
async execute(_input, ctx) {
|
|
150
|
+
async execute(_input, ctx) {
|
|
151
|
+
await jk(ctx, "POST", "/quietDown");
|
|
152
|
+
return { success: true };
|
|
153
|
+
},
|
|
111
154
|
});
|
|
112
155
|
rl.registerAction("instance.cancelQuietDown", {
|
|
113
156
|
description: "Cancel quiet mode",
|
|
114
|
-
async execute(_input, ctx) {
|
|
157
|
+
async execute(_input, ctx) {
|
|
158
|
+
await jk(ctx, "POST", "/cancelQuietDown");
|
|
159
|
+
return { success: true };
|
|
160
|
+
},
|
|
115
161
|
});
|
|
116
162
|
rl.registerAction("instance.restart", {
|
|
117
163
|
description: "Restart Jenkins immediately",
|
|
118
|
-
async execute(_input, ctx) {
|
|
164
|
+
async execute(_input, ctx) {
|
|
165
|
+
await jk(ctx, "POST", "/restart");
|
|
166
|
+
return { success: true };
|
|
167
|
+
},
|
|
119
168
|
});
|
|
120
169
|
rl.registerAction("instance.safeRestart", {
|
|
121
170
|
description: "Restart Jenkins after running builds finish",
|
|
122
|
-
async execute(_input, ctx) {
|
|
171
|
+
async execute(_input, ctx) {
|
|
172
|
+
await jk(ctx, "POST", "/safeRestart");
|
|
173
|
+
return { success: true };
|
|
174
|
+
},
|
|
123
175
|
});
|
|
124
176
|
rl.registerAction("instance.exit", {
|
|
125
177
|
description: "Shut down Jenkins immediately",
|
|
126
|
-
async execute(_input, ctx) {
|
|
178
|
+
async execute(_input, ctx) {
|
|
179
|
+
await jk(ctx, "POST", "/exit");
|
|
180
|
+
return { success: true };
|
|
181
|
+
},
|
|
127
182
|
});
|
|
128
183
|
rl.registerAction("instance.safeExit", {
|
|
129
184
|
description: "Shut down Jenkins after running builds finish",
|
|
130
|
-
async execute(_input, ctx) {
|
|
185
|
+
async execute(_input, ctx) {
|
|
186
|
+
await jk(ctx, "POST", "/safeExit");
|
|
187
|
+
return { success: true };
|
|
188
|
+
},
|
|
131
189
|
});
|
|
132
190
|
}
|