harvask-cli 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -3
- package/dist/api-client.js +23 -9
- package/dist/api-client.js.map +1 -1
- package/dist/commands/attachment/index.js +11 -1
- package/dist/commands/attachment/index.js.map +1 -1
- package/dist/commands/project/builds.js +13 -9
- package/dist/commands/project/builds.js.map +1 -1
- package/dist/commands/project/index.js +2 -1
- package/dist/commands/project/index.js.map +1 -1
- package/dist/commands/scheduled-task/index.js +290 -47
- package/dist/commands/scheduled-task/index.js.map +1 -1
- package/dist/commands/storage/index.js +17 -1
- package/dist/commands/storage/index.js.map +1 -1
- package/dist/commands/workspace/batch.js +65 -0
- package/dist/commands/workspace/batch.js.map +1 -0
- package/dist/commands/workspace/collect.js +368 -0
- package/dist/commands/workspace/collect.js.map +1 -0
- package/dist/commands/workspace/index.js +240 -0
- package/dist/commands/workspace/index.js.map +1 -0
- package/dist/errors/hint-map.js +34 -0
- package/dist/errors/hint-map.js.map +1 -1
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -1
- package/dist/utils/upload.js +29 -0
- package/dist/utils/upload.js.map +1 -1
- package/package.json +1 -1
- package/skills/harvask/AGENTS.md +18 -2
- package/skills/harvask/GEMINI.md +18 -2
- package/skills/harvask/SKILL.md +18 -2
- package/skills/harvask/migration.md +72 -0
|
@@ -1,26 +1,104 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* scheduled-task カテゴリ(定期タスク, /v1/projects/{project}/scheduled-tasks)。
|
|
3
|
+
*
|
|
4
|
+
* サーバー側の契約は ScheduledTaskController(store / update / execute)と
|
|
5
|
+
* Concerns/ProvidesScheduledTaskRules(automation_settings)。
|
|
6
|
+
* 実行タイプごとに受け付けるフィールドが変わるため、送る前にここで型別に振り分ける
|
|
7
|
+
* (サーバーはルールに無いフィールドを 422 にせず黙って捨てるので、
|
|
8
|
+
* 誤った組み合わせは CLI 側で落として「設定したのに効かない」を防ぐ)。
|
|
3
9
|
*/
|
|
4
10
|
import { execCall, parseProjectArg, requireConfirmation } from '../_exec.js';
|
|
5
11
|
import { printOutput } from '../../output/index.js';
|
|
6
12
|
import { ValidationError } from '../../errors/index.js';
|
|
7
|
-
import { parseIntArg, parseNumberList, readContentArg, parseJsonObjectArg } from '../../utils/input.js';
|
|
13
|
+
import { parseIntArg, parseNumberList, readContentArg, parseJsonObjectArg, parseJsonObjectOrNullArg, } from '../../utils/input.js';
|
|
8
14
|
import { API_NS } from '../../api-base.js';
|
|
9
15
|
const BASE = `${API_NS}/projects/{project}/scheduled-tasks`;
|
|
10
|
-
|
|
16
|
+
/** 手動実行は課題作成やチャット送信まで走るので、既定より長めに待ち、リトライもしない。 */
|
|
17
|
+
const SLOW_OP_TIMEOUT_MS = 120000;
|
|
18
|
+
export const EXECUTION_TYPES = ['issue', 'workflow', 'chat'];
|
|
11
19
|
export const FREQUENCIES = ['daily', 'weekly', 'monthly', 'cron'];
|
|
12
20
|
export const ST_ISSUE_TYPES = ['task', 'bug', 'feature', 'research', 'one_shot'];
|
|
13
21
|
export const ST_PRIORITIES = ['low', 'normal', 'high', 'urgent'];
|
|
22
|
+
/** 実行日が非営業日に当たったときの寄せ方。 */
|
|
23
|
+
export const BUSINESS_DAY_ADJUSTMENTS = ['none', 'previous', 'next'];
|
|
24
|
+
/** chat 型の本文の組み立て方(template = 本文そのまま / ai = AI への指示)。 */
|
|
25
|
+
export const CHAT_COMPOSE_MODES = ['template', 'ai'];
|
|
26
|
+
/** automation_settings(AI を介さないシェルコマンド自動実行)で受け付けるキー。 */
|
|
27
|
+
const AUTOMATION_STRING_KEYS = ['command', 'trigger_status', 'on_success_status', 'on_failure_status'];
|
|
28
|
+
const AUTOMATION_MAX_LENGTH = {
|
|
29
|
+
command: 5000,
|
|
30
|
+
trigger_status: 64,
|
|
31
|
+
on_success_status: 64,
|
|
32
|
+
on_failure_status: 64,
|
|
33
|
+
};
|
|
14
34
|
function assertEnum(value, allowed, field) {
|
|
15
35
|
if (!allowed.includes(value))
|
|
16
36
|
throw new ValidationError(`${field} must be one of: ${allowed.join(', ')}`);
|
|
17
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* --automation の中身を検証する。
|
|
40
|
+
*
|
|
41
|
+
* null は自動化設定そのものの解除。オブジェクトの場合、サーバーは既存値とマージし、
|
|
42
|
+
* サブキーの明示 null だけをそのキーの解除として扱う(全置換ではない)。
|
|
43
|
+
*/
|
|
44
|
+
export function normalizeAutomationSettings(value) {
|
|
45
|
+
if (value === null)
|
|
46
|
+
return null;
|
|
47
|
+
const allowed = [...AUTOMATION_STRING_KEYS, 'timeout_sec'];
|
|
48
|
+
const out = {};
|
|
49
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
50
|
+
if (!allowed.includes(key)) {
|
|
51
|
+
throw new ValidationError(`--automation: unknown key "${key}" (allowed: ${allowed.join(', ')})`);
|
|
52
|
+
}
|
|
53
|
+
if (raw === null) {
|
|
54
|
+
out[key] = null;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (key === 'timeout_sec') {
|
|
58
|
+
if (typeof raw !== 'number' || !Number.isInteger(raw) || raw < 1 || raw > 3600) {
|
|
59
|
+
throw new ValidationError('--automation: timeout_sec must be an integer between 1 and 3600');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
if (typeof raw !== 'string') {
|
|
64
|
+
throw new ValidationError(`--automation: ${key} must be a string`);
|
|
65
|
+
}
|
|
66
|
+
const max = AUTOMATION_MAX_LENGTH[key];
|
|
67
|
+
if (raw.length > max) {
|
|
68
|
+
throw new ValidationError(`--automation: ${key} must be <= ${max} characters`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
out[key] = raw;
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
/** HH:MM / 曜日 / 日 の形だけを見る(頻度との必須関係は呼び出し側)。 */
|
|
76
|
+
function assertScheduleShape(a) {
|
|
77
|
+
if (a.executionTime !== undefined && !/^\d{2}:\d{2}$/.test(a.executionTime)) {
|
|
78
|
+
throw new ValidationError('--time must be HH:MM');
|
|
79
|
+
}
|
|
80
|
+
if (a.dayOfWeek !== undefined && (a.dayOfWeek < 0 || a.dayOfWeek > 6)) {
|
|
81
|
+
throw new ValidationError('--day-of-week must be 0-6');
|
|
82
|
+
}
|
|
83
|
+
if (a.dayOfMonth !== undefined && (a.dayOfMonth < 1 || a.dayOfMonth > 28)) {
|
|
84
|
+
throw new ValidationError('--day-of-month must be 1-28');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
18
87
|
export function buildScheduledTaskListCall() {
|
|
19
88
|
return { method: 'GET', path: BASE };
|
|
20
89
|
}
|
|
21
90
|
export function buildScheduledTaskShowCall(id) {
|
|
22
91
|
return { method: 'GET', path: `${BASE}/${id}` };
|
|
23
92
|
}
|
|
93
|
+
/** 手動実行(POST .../{id}/execute)。課題作成・チャット送信まで走るので冪等ではない。 */
|
|
94
|
+
export function buildScheduledTaskExecuteCall(id) {
|
|
95
|
+
return {
|
|
96
|
+
method: 'POST',
|
|
97
|
+
path: `${BASE}/${id}/execute`,
|
|
98
|
+
noRetry: true,
|
|
99
|
+
timeout: SLOW_OP_TIMEOUT_MS,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
24
102
|
export function buildScheduledTaskCreateCall(a) {
|
|
25
103
|
if (!a.name || a.name.trim() === '')
|
|
26
104
|
throw new ValidationError('name is required (--name)');
|
|
@@ -28,6 +106,7 @@ export function buildScheduledTaskCreateCall(a) {
|
|
|
28
106
|
throw new ValidationError('name must be <= 255 characters');
|
|
29
107
|
assertEnum(a.executionType, EXECUTION_TYPES, 'execution-type');
|
|
30
108
|
assertEnum(a.frequency, FREQUENCIES, 'frequency');
|
|
109
|
+
const executionType = a.executionType;
|
|
31
110
|
// 頻度別の必須チェック
|
|
32
111
|
if (a.frequency === 'cron') {
|
|
33
112
|
if (!a.cronExpression)
|
|
@@ -36,8 +115,6 @@ export function buildScheduledTaskCreateCall(a) {
|
|
|
36
115
|
else {
|
|
37
116
|
if (!a.executionTime)
|
|
38
117
|
throw new ValidationError('--time (HH:MM) is required unless frequency=cron');
|
|
39
|
-
if (!/^\d{2}:\d{2}$/.test(a.executionTime))
|
|
40
|
-
throw new ValidationError('--time must be HH:MM');
|
|
41
118
|
}
|
|
42
119
|
if (a.frequency === 'weekly' && a.dayOfWeek === undefined) {
|
|
43
120
|
throw new ValidationError('--day-of-week (0-6) is required when frequency=weekly');
|
|
@@ -45,34 +122,50 @@ export function buildScheduledTaskCreateCall(a) {
|
|
|
45
122
|
if (a.frequency === 'monthly' && a.dayOfMonth === undefined) {
|
|
46
123
|
throw new ValidationError('--day-of-month (1-28) is required when frequency=monthly');
|
|
47
124
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (a.dayOfMonth !== undefined && (a.dayOfMonth < 1 || a.dayOfMonth > 28)) {
|
|
52
|
-
throw new ValidationError('--day-of-month must be 1-28');
|
|
125
|
+
assertScheduleShape(a);
|
|
126
|
+
if (a.businessDayAdjustment) {
|
|
127
|
+
assertEnum(a.businessDayAdjustment, BUSINESS_DAY_ADJUSTMENTS, 'business-day-adjustment');
|
|
53
128
|
}
|
|
54
129
|
// execution_type 別の必須
|
|
55
|
-
if (
|
|
130
|
+
if (executionType === 'issue') {
|
|
56
131
|
if (!a.title)
|
|
57
132
|
throw new ValidationError('--title is required when execution-type=issue');
|
|
58
133
|
if (!a.priority)
|
|
59
134
|
throw new ValidationError('--priority is required when execution-type=issue');
|
|
135
|
+
if (!a.issueType && a.issueTypeId === undefined) {
|
|
136
|
+
throw new ValidationError('--issue-type or --issue-type-id is required when execution-type=issue');
|
|
137
|
+
}
|
|
60
138
|
}
|
|
61
|
-
else if (
|
|
62
|
-
if (a.workflowTemplateId === undefined)
|
|
139
|
+
else if (executionType === 'workflow') {
|
|
140
|
+
if (a.workflowTemplateId === undefined) {
|
|
63
141
|
throw new ValidationError('--workflow-template-id is required when execution-type=workflow');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
if (!a.chatMessageTemplate) {
|
|
146
|
+
throw new ValidationError('--chat-message is required when execution-type=chat');
|
|
147
|
+
}
|
|
148
|
+
if (a.chatMessageTemplate.length > 5000) {
|
|
149
|
+
throw new ValidationError('--chat-message must be <= 5000 characters');
|
|
150
|
+
}
|
|
64
151
|
}
|
|
65
152
|
if (a.issueType)
|
|
66
153
|
assertEnum(a.issueType, ST_ISSUE_TYPES, 'issue-type');
|
|
67
154
|
if (a.priority)
|
|
68
155
|
assertEnum(a.priority, ST_PRIORITIES, 'priority');
|
|
156
|
+
if (a.chatComposeMode)
|
|
157
|
+
assertEnum(a.chatComposeMode, CHAT_COMPOSE_MODES, 'chat-compose-mode');
|
|
69
158
|
const b = {
|
|
70
159
|
name: a.name.trim(),
|
|
71
|
-
execution_type:
|
|
160
|
+
execution_type: executionType,
|
|
72
161
|
frequency: a.frequency,
|
|
73
162
|
};
|
|
74
163
|
if (a.description !== undefined)
|
|
75
164
|
b.description = a.description;
|
|
165
|
+
if (a.isActive !== undefined)
|
|
166
|
+
b.is_active = a.isActive;
|
|
167
|
+
if (a.businessDayAdjustment !== undefined)
|
|
168
|
+
b.business_day_adjustment = a.businessDayAdjustment;
|
|
76
169
|
if (a.executionTime !== undefined)
|
|
77
170
|
b.execution_time = a.executionTime;
|
|
78
171
|
if (a.dayOfWeek !== undefined)
|
|
@@ -81,16 +174,33 @@ export function buildScheduledTaskCreateCall(a) {
|
|
|
81
174
|
b.day_of_month = a.dayOfMonth;
|
|
82
175
|
if (a.cronExpression !== undefined)
|
|
83
176
|
b.cron_expression = a.cronExpression;
|
|
177
|
+
// title は chat 型でも受け付けられる(未指定なら name で補完される)。
|
|
84
178
|
if (a.title !== undefined)
|
|
85
179
|
b.title = a.title;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
180
|
+
// issue_type / priority / workspace_only は chat 型ではルールに無く、送っても捨てられる。
|
|
181
|
+
if (executionType !== 'chat') {
|
|
182
|
+
if (a.issueType !== undefined)
|
|
183
|
+
b.issue_type = a.issueType;
|
|
184
|
+
if (a.issueTypeId !== undefined)
|
|
185
|
+
b.issue_type_id = a.issueTypeId;
|
|
186
|
+
if (a.priority !== undefined)
|
|
187
|
+
b.priority = a.priority;
|
|
188
|
+
if (a.workspaceOnly !== undefined)
|
|
189
|
+
b.workspace_only = a.workspaceOnly;
|
|
190
|
+
}
|
|
191
|
+
if (executionType === 'workflow') {
|
|
192
|
+
if (a.workflowTemplateId !== undefined)
|
|
193
|
+
b.workflow_template_id = a.workflowTemplateId;
|
|
194
|
+
if (a.workflowParameters !== undefined)
|
|
195
|
+
b.workflow_parameters = a.workflowParameters;
|
|
196
|
+
}
|
|
197
|
+
if (executionType === 'chat') {
|
|
198
|
+
if (a.chatComposeMode !== undefined)
|
|
199
|
+
b.chat_compose_mode = a.chatComposeMode;
|
|
200
|
+
if (a.chatMessageTemplate !== undefined)
|
|
201
|
+
b.chat_message_template = a.chatMessageTemplate;
|
|
202
|
+
if (a.chatSenderAiUserId !== undefined)
|
|
203
|
+
b.chat_sender_ai_user_id = a.chatSenderAiUserId;
|
|
94
204
|
}
|
|
95
205
|
if (a.assigneeId !== undefined)
|
|
96
206
|
b.assignee_id = a.assigneeId;
|
|
@@ -100,18 +210,52 @@ export function buildScheduledTaskCreateCall(a) {
|
|
|
100
210
|
b.estimated_hours = a.estimatedHours;
|
|
101
211
|
if (a.siteCredentialIds && a.siteCredentialIds.length)
|
|
102
212
|
b.site_credential_ids = a.siteCredentialIds;
|
|
213
|
+
if (a.automation !== undefined)
|
|
214
|
+
b.automation_settings = normalizeAutomationSettings(a.automation);
|
|
103
215
|
return { method: 'POST', path: BASE, body: b };
|
|
104
216
|
}
|
|
105
217
|
export function buildScheduledTaskUpdateCall(id, a) {
|
|
106
218
|
if (a.name !== undefined && a.name.length > 255)
|
|
107
219
|
throw new ValidationError('name must be <= 255 characters');
|
|
220
|
+
if (a.frequency !== undefined)
|
|
221
|
+
assertEnum(a.frequency, FREQUENCIES, 'frequency');
|
|
222
|
+
assertScheduleShape(a);
|
|
223
|
+
if (a.businessDayAdjustment) {
|
|
224
|
+
assertEnum(a.businessDayAdjustment, BUSINESS_DAY_ADJUSTMENTS, 'business-day-adjustment');
|
|
225
|
+
}
|
|
226
|
+
if (a.issueType)
|
|
227
|
+
assertEnum(a.issueType, ST_ISSUE_TYPES, 'issue-type');
|
|
228
|
+
if (a.priority)
|
|
229
|
+
assertEnum(a.priority, ST_PRIORITIES, 'priority');
|
|
230
|
+
if (a.chatComposeMode)
|
|
231
|
+
assertEnum(a.chatComposeMode, CHAT_COMPOSE_MODES, 'chat-compose-mode');
|
|
232
|
+
if (a.chatMessageTemplate !== undefined && a.chatMessageTemplate.length > 5000) {
|
|
233
|
+
throw new ValidationError('--chat-message must be <= 5000 characters');
|
|
234
|
+
}
|
|
235
|
+
const hasWorkflowFields = a.workflowTemplateId !== undefined || a.workflowParameters !== undefined;
|
|
236
|
+
const hasChatFields = a.chatComposeMode !== undefined || a.chatMessageTemplate !== undefined || a.chatSenderAiUserId !== undefined;
|
|
237
|
+
const hasIssueOnlyFields = a.issueType !== undefined ||
|
|
238
|
+
a.issueTypeId !== undefined ||
|
|
239
|
+
a.priority !== undefined ||
|
|
240
|
+
a.workspaceOnly !== undefined;
|
|
241
|
+
// サーバーは「更新後の実効 execution_type」でフィールドを取捨する。
|
|
242
|
+
// --execution-type が来ているときだけ実効型が確定するので、そこだけ先に弾く
|
|
243
|
+
// (workflow 系は prohibited で 422、それ以外はルールに無く黙って捨てられる)。
|
|
108
244
|
if (a.executionType !== undefined) {
|
|
109
245
|
assertEnum(a.executionType, EXECUTION_TYPES, 'execution-type');
|
|
110
|
-
if (a.executionType === 'workflow'
|
|
111
|
-
|
|
246
|
+
if (a.executionType === 'workflow') {
|
|
247
|
+
if (a.workflowTemplateId === undefined) {
|
|
248
|
+
throw new ValidationError('--workflow-template-id is required when switching execution-type to workflow');
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else if (hasWorkflowFields) {
|
|
252
|
+
throw new ValidationError(`--workflow-template-id / --workflow-parameters cannot be used with execution-type=${a.executionType} (the server rejects them)`);
|
|
253
|
+
}
|
|
254
|
+
if (a.executionType !== 'chat' && hasChatFields) {
|
|
255
|
+
throw new ValidationError(`--chat-* options cannot be used with execution-type=${a.executionType} (they would be ignored)`);
|
|
112
256
|
}
|
|
113
|
-
if (a.executionType === '
|
|
114
|
-
throw new ValidationError('
|
|
257
|
+
if (a.executionType === 'chat' && hasIssueOnlyFields) {
|
|
258
|
+
throw new ValidationError('--issue-type / --issue-type-id / --priority / --workspace-only cannot be used with execution-type=chat (they would be ignored)');
|
|
115
259
|
}
|
|
116
260
|
}
|
|
117
261
|
const b = {};
|
|
@@ -123,12 +267,48 @@ export function buildScheduledTaskUpdateCall(id, a) {
|
|
|
123
267
|
b.is_active = a.isActive;
|
|
124
268
|
if (a.executionType !== undefined)
|
|
125
269
|
b.execution_type = a.executionType;
|
|
270
|
+
if (a.businessDayAdjustment !== undefined)
|
|
271
|
+
b.business_day_adjustment = a.businessDayAdjustment;
|
|
272
|
+
if (a.frequency !== undefined)
|
|
273
|
+
b.frequency = a.frequency;
|
|
274
|
+
if (a.executionTime !== undefined)
|
|
275
|
+
b.execution_time = a.executionTime;
|
|
276
|
+
if (a.dayOfWeek !== undefined)
|
|
277
|
+
b.day_of_week = a.dayOfWeek;
|
|
278
|
+
if (a.dayOfMonth !== undefined)
|
|
279
|
+
b.day_of_month = a.dayOfMonth;
|
|
280
|
+
if (a.cronExpression !== undefined)
|
|
281
|
+
b.cron_expression = a.cronExpression;
|
|
282
|
+
if (a.title !== undefined)
|
|
283
|
+
b.title = a.title;
|
|
284
|
+
if (a.issueType !== undefined)
|
|
285
|
+
b.issue_type = a.issueType;
|
|
286
|
+
if (a.issueTypeId !== undefined)
|
|
287
|
+
b.issue_type_id = a.issueTypeId;
|
|
288
|
+
if (a.priority !== undefined)
|
|
289
|
+
b.priority = a.priority;
|
|
290
|
+
if (a.workspaceOnly !== undefined)
|
|
291
|
+
b.workspace_only = a.workspaceOnly;
|
|
126
292
|
if (a.workflowTemplateId !== undefined)
|
|
127
293
|
b.workflow_template_id = a.workflowTemplateId;
|
|
128
294
|
if (a.workflowParameters !== undefined)
|
|
129
295
|
b.workflow_parameters = a.workflowParameters;
|
|
296
|
+
if (a.chatComposeMode !== undefined)
|
|
297
|
+
b.chat_compose_mode = a.chatComposeMode;
|
|
298
|
+
if (a.chatMessageTemplate !== undefined)
|
|
299
|
+
b.chat_message_template = a.chatMessageTemplate;
|
|
300
|
+
if (a.chatSenderAiUserId !== undefined)
|
|
301
|
+
b.chat_sender_ai_user_id = a.chatSenderAiUserId;
|
|
302
|
+
if (a.assigneeId !== undefined)
|
|
303
|
+
b.assignee_id = a.assigneeId;
|
|
304
|
+
if (a.reviewerId !== undefined)
|
|
305
|
+
b.reviewer_id = a.reviewerId;
|
|
306
|
+
if (a.estimatedHours !== undefined)
|
|
307
|
+
b.estimated_hours = a.estimatedHours;
|
|
130
308
|
if (a.siteCredentialIds && a.siteCredentialIds.length)
|
|
131
309
|
b.site_credential_ids = a.siteCredentialIds;
|
|
310
|
+
if (a.automation !== undefined)
|
|
311
|
+
b.automation_settings = normalizeAutomationSettings(a.automation);
|
|
132
312
|
if (Object.keys(b).length === 0)
|
|
133
313
|
throw new ValidationError('nothing to update');
|
|
134
314
|
return { method: 'PUT', path: `${BASE}/${id}`, body: b };
|
|
@@ -136,12 +316,41 @@ export function buildScheduledTaskUpdateCall(id, a) {
|
|
|
136
316
|
export function buildScheduledTaskDeleteCall(id) {
|
|
137
317
|
return { method: 'DELETE', path: `${BASE}/${id}` };
|
|
138
318
|
}
|
|
319
|
+
/** --active / --inactive の組から is_active を決める。 */
|
|
320
|
+
function activeFlag(opts) {
|
|
321
|
+
if (opts.active && opts.inactive)
|
|
322
|
+
throw new ValidationError('use only one of --active / --inactive');
|
|
323
|
+
return opts.active ? true : opts.inactive ? false : undefined;
|
|
324
|
+
}
|
|
325
|
+
/** --automation の JSON を読む("null" で自動化設定の解除)。 */
|
|
326
|
+
function automationArg(value) {
|
|
327
|
+
return value !== undefined ? parseJsonObjectOrNullArg(value, '--automation') : undefined;
|
|
328
|
+
}
|
|
139
329
|
export const scheduledTaskModule = {
|
|
140
330
|
name: 'scheduled-task',
|
|
141
331
|
describe: 'Manage scheduled tasks',
|
|
142
332
|
register(program, ctx) {
|
|
143
333
|
const st = program.command('scheduled-task').description('Scheduled (recurring) tasks');
|
|
144
334
|
const withProject = (cmd) => cmd.option('-p, --project <key|id>', 'project key (PRJ) or numeric id');
|
|
335
|
+
/** create / update で共通の「実行内容」オプション。 */
|
|
336
|
+
const withPayloadOptions = (cmd) => cmd
|
|
337
|
+
.option('--description <text>', 'description (Markdown, @file or - for stdin)')
|
|
338
|
+
.option('--business-day-adjustment <mode>', `non-business-day handling (${BUSINESS_DAY_ADJUSTMENTS.join('|')})`)
|
|
339
|
+
.option('--title <title>', 'issue title (issue/workflow; chat falls back to --name)')
|
|
340
|
+
.option('--issue-type <type>', `(${ST_ISSUE_TYPES.join('|')})`)
|
|
341
|
+
.option('--issue-type-id <id>', 'custom issue type id (alternative to --issue-type)', parseIntArg)
|
|
342
|
+
.option('--priority <priority>', `(${ST_PRIORITIES.join('|')})`)
|
|
343
|
+
.option('--workspace-only', 'run against the AI workspace only')
|
|
344
|
+
.option('--workflow-template-id <id>', 'workflow template id (execution-type=workflow)', parseIntArg)
|
|
345
|
+
.option('--workflow-parameters <json>', 'workflow execution parameters (@file.json or - for stdin)')
|
|
346
|
+
.option('--chat-compose-mode <mode>', `(${CHAT_COMPOSE_MODES.join('|')}; execution-type=chat)`)
|
|
347
|
+
.option('--chat-message <text>', 'chat body template (@file or -; execution-type=chat, <=5000)')
|
|
348
|
+
.option('--chat-sender-ai-user-id <id>', 'AI user that sends the chat', parseIntArg)
|
|
349
|
+
.option('--assignee-id <id>', 'assignee user id', parseIntArg)
|
|
350
|
+
.option('--reviewer-id <id>', 'reviewer user id', parseIntArg)
|
|
351
|
+
.option('--estimated-hours <n>', 'estimated hours', parseFloat)
|
|
352
|
+
.option('--site-credential-ids <ids>', 'comma-separated site credential ids', parseNumberList)
|
|
353
|
+
.option('--automation <json|null>', 'automation_settings: {command,timeout_sec,trigger_status,on_success_status,on_failure_status} (@file.json or -); "null" clears it');
|
|
145
354
|
withProject(st.command('list'))
|
|
146
355
|
.description('List scheduled tasks')
|
|
147
356
|
.action(async (opts) => {
|
|
@@ -153,77 +362,111 @@ export const scheduledTaskModule = {
|
|
|
153
362
|
.action(async (id, opts) => {
|
|
154
363
|
printOutput(await execCall(ctx, buildScheduledTaskShowCall(parseIntArg(id)), parseProjectArg(opts.project)), ctx.out);
|
|
155
364
|
});
|
|
156
|
-
withProject(st.command('create'))
|
|
365
|
+
withPayloadOptions(withProject(st.command('create'))
|
|
157
366
|
.description('Create a scheduled task')
|
|
158
367
|
.requiredOption('--name <name>', 'name (<=255)')
|
|
159
368
|
.requiredOption('--execution-type <type>', `(${EXECUTION_TYPES.join('|')})`)
|
|
160
369
|
.requiredOption('--frequency <freq>', `(${FREQUENCIES.join('|')})`)
|
|
161
|
-
.option('--description <text>', 'description (Markdown, @file or - for stdin)')
|
|
162
370
|
.option('--time <HH:MM>', 'execution time (required unless cron)')
|
|
163
371
|
.option('--day-of-week <n>', 'weekly: 0(Sun)-6(Sat)', parseIntArg)
|
|
164
372
|
.option('--day-of-month <n>', 'monthly: 1-28', parseIntArg)
|
|
165
373
|
.option('--cron <expr>', 'cron expression (when frequency=cron)')
|
|
166
|
-
.option('--
|
|
167
|
-
.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
.option('--estimated-hours <n>', 'estimated hours', parseFloat)
|
|
174
|
-
.option('--site-credential-ids <ids>', 'comma-separated site credential ids', parseNumberList)
|
|
374
|
+
.option('--inactive', 'create it disabled (default: enabled)'))
|
|
375
|
+
.addHelpText('after', `
|
|
376
|
+
harvask scheduled-task create -p PRJ --name "Daily report" --execution-type issue \\
|
|
377
|
+
--frequency daily --time 09:00 --title "Daily report" --issue-type task --priority normal
|
|
378
|
+
harvask scheduled-task create -p PRJ --name "Morning ping" --execution-type chat \\
|
|
379
|
+
--frequency weekly --time 09:00 --day-of-week 1 --chat-message @greeting.md
|
|
380
|
+
`)
|
|
175
381
|
.action(async (opts) => {
|
|
176
382
|
const call = buildScheduledTaskCreateCall({
|
|
177
383
|
name: opts.name,
|
|
178
384
|
executionType: opts.executionType,
|
|
179
385
|
frequency: opts.frequency,
|
|
180
386
|
description: opts.description !== undefined ? readContentArg(opts.description) : undefined,
|
|
387
|
+
isActive: opts.inactive ? false : undefined,
|
|
388
|
+
businessDayAdjustment: opts.businessDayAdjustment,
|
|
181
389
|
executionTime: opts.time,
|
|
182
390
|
dayOfWeek: opts.dayOfWeek,
|
|
183
391
|
dayOfMonth: opts.dayOfMonth,
|
|
184
392
|
cronExpression: opts.cron,
|
|
185
393
|
title: opts.title,
|
|
186
394
|
issueType: opts.issueType,
|
|
395
|
+
issueTypeId: opts.issueTypeId,
|
|
187
396
|
priority: opts.priority,
|
|
397
|
+
workspaceOnly: opts.workspaceOnly,
|
|
188
398
|
workflowTemplateId: opts.workflowTemplateId,
|
|
189
399
|
workflowParameters: opts.workflowParameters !== undefined
|
|
190
400
|
? parseJsonObjectArg(opts.workflowParameters, '--workflow-parameters')
|
|
191
401
|
: undefined,
|
|
402
|
+
chatComposeMode: opts.chatComposeMode,
|
|
403
|
+
chatMessageTemplate: opts.chatMessage !== undefined ? readContentArg(opts.chatMessage) : undefined,
|
|
404
|
+
chatSenderAiUserId: opts.chatSenderAiUserId,
|
|
192
405
|
assigneeId: opts.assigneeId,
|
|
193
406
|
reviewerId: opts.reviewerId,
|
|
194
407
|
estimatedHours: opts.estimatedHours,
|
|
195
408
|
siteCredentialIds: opts.siteCredentialIds,
|
|
409
|
+
automation: automationArg(opts.automation),
|
|
196
410
|
});
|
|
197
411
|
printOutput(await execCall(ctx, call, parseProjectArg(opts.project)), ctx.out);
|
|
198
412
|
});
|
|
199
|
-
withProject(st.command('update'))
|
|
413
|
+
withPayloadOptions(withProject(st.command('update'))
|
|
200
414
|
.description('Update a scheduled task')
|
|
201
415
|
.argument('<id>', 'scheduled task id')
|
|
202
416
|
.option('--name <name>', 'name (<=255)')
|
|
203
|
-
.option('--
|
|
417
|
+
.option('--execution-type <type>', `switch execution type (${EXECUTION_TYPES.join('|')})`)
|
|
418
|
+
.option('--frequency <freq>', `(${FREQUENCIES.join('|')})`)
|
|
419
|
+
.option('--time <HH:MM>', 'execution time')
|
|
420
|
+
.option('--day-of-week <n>', 'weekly: 0(Sun)-6(Sat)', parseIntArg)
|
|
421
|
+
.option('--day-of-month <n>', 'monthly: 1-28', parseIntArg)
|
|
422
|
+
.option('--cron <expr>', 'cron expression')
|
|
204
423
|
.option('--active', 'set active')
|
|
205
|
-
.option('--inactive', 'set inactive')
|
|
206
|
-
.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
424
|
+
.option('--inactive', 'set inactive'))
|
|
425
|
+
.addHelpText('after', `
|
|
426
|
+
Only the fields you pass are changed. The frequency/time combination is validated
|
|
427
|
+
by the server against the values the task will have after the update, so you can
|
|
428
|
+
change them one at a time (e.g. --day-of-week 3 on a weekly task).
|
|
429
|
+
`)
|
|
210
430
|
.action(async (id, opts) => {
|
|
211
|
-
if (opts.active && opts.inactive)
|
|
212
|
-
throw new ValidationError('use only one of --active / --inactive');
|
|
213
|
-
const isActive = opts.active ? true : opts.inactive ? false : undefined;
|
|
214
431
|
const call = buildScheduledTaskUpdateCall(parseIntArg(id), {
|
|
215
432
|
name: opts.name,
|
|
216
433
|
description: opts.description !== undefined ? readContentArg(opts.description) : undefined,
|
|
217
|
-
isActive,
|
|
434
|
+
isActive: activeFlag(opts),
|
|
218
435
|
executionType: opts.executionType,
|
|
436
|
+
businessDayAdjustment: opts.businessDayAdjustment,
|
|
437
|
+
frequency: opts.frequency,
|
|
438
|
+
executionTime: opts.time,
|
|
439
|
+
dayOfWeek: opts.dayOfWeek,
|
|
440
|
+
dayOfMonth: opts.dayOfMonth,
|
|
441
|
+
cronExpression: opts.cron,
|
|
442
|
+
title: opts.title,
|
|
443
|
+
issueType: opts.issueType,
|
|
444
|
+
issueTypeId: opts.issueTypeId,
|
|
445
|
+
priority: opts.priority,
|
|
446
|
+
workspaceOnly: opts.workspaceOnly,
|
|
219
447
|
workflowTemplateId: opts.workflowTemplateId,
|
|
220
448
|
workflowParameters: opts.workflowParameters !== undefined
|
|
221
449
|
? parseJsonObjectArg(opts.workflowParameters, '--workflow-parameters')
|
|
222
450
|
: undefined,
|
|
451
|
+
chatComposeMode: opts.chatComposeMode,
|
|
452
|
+
chatMessageTemplate: opts.chatMessage !== undefined ? readContentArg(opts.chatMessage) : undefined,
|
|
453
|
+
chatSenderAiUserId: opts.chatSenderAiUserId,
|
|
454
|
+
assigneeId: opts.assigneeId,
|
|
455
|
+
reviewerId: opts.reviewerId,
|
|
456
|
+
estimatedHours: opts.estimatedHours,
|
|
223
457
|
siteCredentialIds: opts.siteCredentialIds,
|
|
458
|
+
automation: automationArg(opts.automation),
|
|
224
459
|
});
|
|
225
460
|
printOutput(await execCall(ctx, call, parseProjectArg(opts.project)), ctx.out);
|
|
226
461
|
});
|
|
462
|
+
withProject(st.command('execute'))
|
|
463
|
+
.description('Run a scheduled task now (creates the issue / sends the chat immediately)')
|
|
464
|
+
.argument('<id>', 'scheduled task id')
|
|
465
|
+
.option('--yes', 'skip confirmation (required in non-interactive mode)')
|
|
466
|
+
.action(async (id, opts) => {
|
|
467
|
+
requireConfirmation(opts, 'execute');
|
|
468
|
+
printOutput(await execCall(ctx, buildScheduledTaskExecuteCall(parseIntArg(id)), parseProjectArg(opts.project)), ctx.out);
|
|
469
|
+
});
|
|
227
470
|
withProject(st.command('delete'))
|
|
228
471
|
.description('Delete a scheduled task')
|
|
229
472
|
.argument('<id>', 'scheduled task id')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/scheduled-task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,IAAI,GAAG,GAAG,MAAM,qCAAqC,CAAC;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU,CAAU,CAAC;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AAC1F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAE1E,SAAS,UAAU,CAAC,KAAa,EAAE,OAA0B,EAAE,KAAa;IAC1E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,GAAG,KAAK,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,EAAU;IACnD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AAClD,CAAC;AAsBD,MAAM,UAAU,4BAA4B,CAAC,CAAoB;IAC/D,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAC;IAC5F,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAC;IACrF,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAC/D,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAElD,aAAa;IACb,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,cAAc;YAAE,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,CAAC,CAAC,aAAa;YAAE,MAAM,IAAI,eAAe,CAAC,kDAAkD,CAAC,CAAC;QACpG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,eAAe,CAAC,uDAAuD,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC5D,MAAM,IAAI,eAAe,CAAC,0DAA0D,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,eAAe,CAAC,6BAA6B,CAAC,CAAC;IAC3D,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,MAAM,IAAI,eAAe,CAAC,+CAA+C,CAAC,CAAC;QACzF,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,MAAM,IAAI,eAAe,CAAC,kDAAkD,CAAC,CAAC;IACjG,CAAC;SAAM,IAAI,CAAC,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,iEAAiE,CAAC,CAAC;IACvI,CAAC;IACD,IAAI,CAAC,CAAC,SAAS;QAAE,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,QAAQ;QAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,CAAC,GAA4B;QACjC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;QACnB,cAAc,EAAE,CAAC,CAAC,aAAa;QAC/B,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC;IACF,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAC/D,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;QAAE,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,aAAa,CAAC;IACtE,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3D,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC;IAC9D,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS;QAAE,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,cAAc,CAAC;IACzE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7C,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACtD,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS;QAAE,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC;IACtF,IAAI,CAAC,CAAC,aAAa,KAAK,UAAU,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACzE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC;IAC7D,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC;IAC7D,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS;QAAE,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,cAAc,CAAC;IACzE,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM;QAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,iBAAiB,CAAC;IACnG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,EAAU,EACV,CAQC;IAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAC;IAC7G,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC,aAAa,KAAK,UAAU,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACzE,MAAM,IAAI,eAAe,CAAC,8EAA8E,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CACvB,oLAAoL,CACrL,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAA4B,EAAE,CAAC;IACtC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAC/D,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;IACvD,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;QAAE,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,aAAa,CAAC;IACtE,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS;QAAE,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC;IACtF,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS;QAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,CAAC;IACrF,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM;QAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,iBAAiB,CAAC;IACnG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAChF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAAU;IACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,wBAAwB;IAClC,QAAQ,CAAC,OAAgB,EAAE,GAAmB;QAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,CAAC,GAAY,EAAW,EAAE,CAC5C,GAAG,CAAC,MAAM,CAAC,wBAAwB,EAAE,iCAAiC,CAAC,CAAC;QAE1E,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC5B,WAAW,CAAC,sBAAsB,CAAC;aACnC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,WAAW,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QAEL,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC5B,WAAW,CAAC,uBAAuB,CAAC;aACpC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;aACrC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAI,EAAE,EAAE;YACjC,WAAW,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,0BAA0B,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACxH,CAAC,CAAC,CAAC;QAEL,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC9B,WAAW,CAAC,yBAAyB,CAAC;aACtC,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC;aAC/C,cAAc,CAAC,yBAAyB,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAC3E,cAAc,CAAC,oBAAoB,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAClE,MAAM,CAAC,sBAAsB,EAAE,8CAA8C,CAAC;aAC9E,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;aACjE,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,WAAW,CAAC;aACjE,MAAM,CAAC,oBAAoB,EAAE,eAAe,EAAE,WAAW,CAAC;aAC1D,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;aAChE,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;aAC/D,MAAM,CAAC,qBAAqB,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAC9D,MAAM,CAAC,uBAAuB,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAC/D,MAAM,CAAC,6BAA6B,EAAE,gDAAgD,EAAE,WAAW,CAAC;aACpG,MAAM,CAAC,8BAA8B,EAAE,2DAA2D,CAAC;aACnG,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC;aAC7D,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC;aAC7D,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,UAAU,CAAC;aAC9D,MAAM,CAAC,6BAA6B,EAAE,qCAAqC,EAAE,eAAe,CAAC;aAC7F,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,4BAA4B,CAAC;gBACxC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC1F,aAAa,EAAE,IAAI,CAAC,IAAI;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,cAAc,EAAE,IAAI,CAAC,IAAI;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,kBAAkB,EAChB,IAAI,CAAC,kBAAkB,KAAK,SAAS;oBACnC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;oBACtE,CAAC,CAAC,SAAS;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAC;YACH,WAAW,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEL,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC9B,WAAW,CAAC,yBAAyB,CAAC;aACtC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;aACrC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;aACvC,MAAM,CAAC,sBAAsB,EAAE,8CAA8C,CAAC;aAC9E,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;aAChC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;aACpC,MAAM,CAAC,yBAAyB,EAAE,oHAAoH,CAAC;aACvJ,MAAM,CAAC,6BAA6B,EAAE,kEAAkE,EAAE,WAAW,CAAC;aACtH,MAAM,CAAC,8BAA8B,EAAE,2DAA2D,CAAC;aACnG,MAAM,CAAC,6BAA6B,EAAE,qCAAqC,EAAE,eAAe,CAAC;aAC7F,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAI,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,eAAe,CAAC,uCAAuC,CAAC,CAAC;YACrG,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,IAAI,GAAG,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;gBACzD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC1F,QAAQ;gBACR,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,kBAAkB,EAChB,IAAI,CAAC,kBAAkB,KAAK,SAAS;oBACnC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;oBACtE,CAAC,CAAC,SAAS;gBACf,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAC;YACH,WAAW,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEL,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC9B,WAAW,CAAC,yBAAyB,CAAC;aACtC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;aACrC,MAAM,CAAC,OAAO,EAAE,sDAAsD,CAAC;aACvE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAI,EAAE,EAAE;YACjC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpC,WAAW,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1H,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/scheduled-task/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ import { buildFileFormData } from '../../utils/upload.js';
|
|
|
11
11
|
import { saveBlob } from '../../utils/download.js';
|
|
12
12
|
import { API_NS } from '../../api-base.js';
|
|
13
13
|
const BASE = `${API_NS}/projects/{project}/storage`;
|
|
14
|
+
/** 同名ファイルが既にあるときの挙動(`StorageUploadController::CONFLICT_MODES` と同値)。 */
|
|
15
|
+
export const STORAGE_CONFLICT_MODES = ['rename', 'overwrite', 'error'];
|
|
14
16
|
export function buildStorageSearchCall(query, opts = {}) {
|
|
15
17
|
if (!query || query.trim() === '')
|
|
16
18
|
throw new ValidationError('search query is required');
|
|
@@ -120,10 +122,24 @@ export const storageModule = {
|
|
|
120
122
|
.description('Upload a file (multipart; very large files may exceed the request timeout)')
|
|
121
123
|
.requiredOption('--file <path>', 'local file path')
|
|
122
124
|
.option('--parent-id <id>', 'parent folder id (omit = root)', parseIntArg)
|
|
125
|
+
.option('--on-conflict <mode>', `same-name file in the target folder (${STORAGE_CONFLICT_MODES.join('|')}; default rename)`)
|
|
126
|
+
.option('--yes', 'skip confirmation (required with --on-conflict overwrite in non-interactive mode)')
|
|
123
127
|
.action(async (opts) => {
|
|
128
|
+
const onConflict = opts.onConflict;
|
|
129
|
+
if (onConflict !== undefined && !STORAGE_CONFLICT_MODES.includes(onConflict)) {
|
|
130
|
+
throw new ValidationError(`--on-conflict must be one of: ${STORAGE_CONFLICT_MODES.join(', ')}`);
|
|
131
|
+
}
|
|
132
|
+
// overwrite は既存の実体を消して差し替える不可逆操作(storage_items の id は維持される)。
|
|
133
|
+
// delete と同じゲートを通す。
|
|
134
|
+
if (onConflict === 'overwrite') {
|
|
135
|
+
requireConfirmation(opts, 'overwrite an existing file');
|
|
136
|
+
}
|
|
124
137
|
const client = ctx.getApiClient();
|
|
125
138
|
const pid = await resolveProjectId(client, parseProjectArg(opts.project) ?? {});
|
|
126
|
-
const form = buildFileFormData(opts.file, {
|
|
139
|
+
const form = buildFileFormData(opts.file, {
|
|
140
|
+
parent_id: opts.parentId,
|
|
141
|
+
on_conflict: onConflict,
|
|
142
|
+
});
|
|
127
143
|
const result = await client.postMultipart(`${API_NS}/projects/${pid}/storage/upload`, form);
|
|
128
144
|
printOutput(result, ctx.out);
|
|
129
145
|
});
|