@bussolabs/closeyourit-cli 0.0.3 → 0.0.5

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.
Files changed (103) hide show
  1. package/README.md +1 -0
  2. package/dist/commands/alerts/create.d.ts +18 -0
  3. package/dist/commands/alerts/create.js +48 -0
  4. package/dist/commands/alerts/delete.d.ts +12 -0
  5. package/dist/commands/alerts/delete.js +25 -0
  6. package/dist/commands/alerts/list.d.ts +9 -0
  7. package/dist/commands/alerts/list.js +24 -0
  8. package/dist/commands/alerts/show.d.ts +9 -0
  9. package/dist/commands/alerts/show.js +21 -0
  10. package/dist/commands/alerts/update.d.ts +19 -0
  11. package/dist/commands/alerts/update.js +53 -0
  12. package/dist/commands/environments/create.d.ts +15 -0
  13. package/dist/commands/environments/create.js +37 -0
  14. package/dist/commands/environments/delete.d.ts +12 -0
  15. package/dist/commands/environments/delete.js +26 -0
  16. package/dist/commands/environments/list.d.ts +9 -0
  17. package/dist/commands/environments/list.js +25 -0
  18. package/dist/commands/environments/update.d.ts +16 -0
  19. package/dist/commands/environments/update.js +45 -0
  20. package/dist/commands/errors/promote.d.ts +12 -0
  21. package/dist/commands/errors/promote.js +24 -0
  22. package/dist/commands/groups/delete.d.ts +12 -0
  23. package/dist/commands/groups/delete.js +26 -0
  24. package/dist/commands/groups/update.d.ts +13 -0
  25. package/dist/commands/groups/update.js +35 -0
  26. package/dist/commands/invitations/resend.d.ts +9 -0
  27. package/dist/commands/invitations/resend.js +25 -0
  28. package/dist/commands/logs/list.d.ts +13 -0
  29. package/dist/commands/logs/list.js +51 -0
  30. package/dist/commands/members/set-access.d.ts +13 -0
  31. package/dist/commands/members/set-access.js +44 -0
  32. package/dist/commands/members/set-role.d.ts +12 -0
  33. package/dist/commands/members/set-role.js +32 -0
  34. package/dist/commands/metrics/promote.d.ts +12 -0
  35. package/dist/commands/metrics/promote.js +24 -0
  36. package/dist/commands/milestones/create.d.ts +14 -0
  37. package/dist/commands/milestones/create.js +38 -0
  38. package/dist/commands/milestones/delete.d.ts +13 -0
  39. package/dist/commands/milestones/delete.js +27 -0
  40. package/dist/commands/milestones/list.d.ts +10 -0
  41. package/dist/commands/milestones/list.js +29 -0
  42. package/dist/commands/milestones/show.d.ts +12 -0
  43. package/dist/commands/milestones/show.js +23 -0
  44. package/dist/commands/milestones/update.d.ts +17 -0
  45. package/dist/commands/milestones/update.js +45 -0
  46. package/dist/commands/monitors/create.d.ts +15 -0
  47. package/dist/commands/monitors/create.js +43 -0
  48. package/dist/commands/monitors/delete.d.ts +13 -0
  49. package/dist/commands/monitors/delete.js +27 -0
  50. package/dist/commands/monitors/list.d.ts +10 -0
  51. package/dist/commands/monitors/list.js +29 -0
  52. package/dist/commands/monitors/pause.d.ts +12 -0
  53. package/dist/commands/monitors/pause.js +21 -0
  54. package/dist/commands/monitors/resume.d.ts +12 -0
  55. package/dist/commands/monitors/resume.js +21 -0
  56. package/dist/commands/monitors/show.d.ts +12 -0
  57. package/dist/commands/monitors/show.js +23 -0
  58. package/dist/commands/monitors/update.d.ts +17 -0
  59. package/dist/commands/monitors/update.js +45 -0
  60. package/dist/commands/org/show.d.ts +6 -0
  61. package/dist/commands/org/show.js +16 -0
  62. package/dist/commands/org/update.d.ts +11 -0
  63. package/dist/commands/org/update.js +35 -0
  64. package/dist/commands/platforms/create.d.ts +15 -0
  65. package/dist/commands/platforms/create.js +36 -0
  66. package/dist/commands/platforms/delete.d.ts +12 -0
  67. package/dist/commands/platforms/delete.js +26 -0
  68. package/dist/commands/platforms/list.d.ts +9 -0
  69. package/dist/commands/platforms/list.js +25 -0
  70. package/dist/commands/platforms/update.d.ts +16 -0
  71. package/dist/commands/platforms/update.js +45 -0
  72. package/dist/commands/projects/create.d.ts +1 -1
  73. package/dist/commands/projects/create.js +3 -4
  74. package/dist/commands/projects/delete.d.ts +10 -0
  75. package/dist/commands/projects/delete.js +24 -0
  76. package/dist/commands/projects/update.d.ts +14 -0
  77. package/dist/commands/projects/update.js +37 -0
  78. package/dist/commands/tickets/assign.d.ts +14 -0
  79. package/dist/commands/tickets/assign.js +38 -0
  80. package/dist/commands/tickets/attach.d.ts +13 -0
  81. package/dist/commands/tickets/attach.js +48 -0
  82. package/dist/commands/tickets/comment-delete.d.ts +14 -0
  83. package/dist/commands/tickets/comment-delete.js +30 -0
  84. package/dist/commands/tickets/comment.d.ts +13 -0
  85. package/dist/commands/tickets/comment.js +29 -0
  86. package/dist/commands/tickets/delete.d.ts +13 -0
  87. package/dist/commands/tickets/delete.js +27 -0
  88. package/dist/commands/tickets/detach.d.ts +14 -0
  89. package/dist/commands/tickets/detach.js +30 -0
  90. package/dist/commands/tickets/milestone.d.ts +14 -0
  91. package/dist/commands/tickets/milestone.js +38 -0
  92. package/dist/commands/tickets/status.d.ts +13 -0
  93. package/dist/commands/tickets/status.js +27 -0
  94. package/dist/commands/tickets/unvote.d.ts +12 -0
  95. package/dist/commands/tickets/unvote.js +24 -0
  96. package/dist/commands/tickets/update.d.ts +25 -0
  97. package/dist/commands/tickets/update.js +71 -0
  98. package/dist/commands/tickets/vote.d.ts +12 -0
  99. package/dist/commands/tickets/vote.js +24 -0
  100. package/dist/lib/api.d.ts +17 -0
  101. package/dist/lib/api.js +40 -12
  102. package/oclif.manifest.json +3388 -559
  103. package/package.json +52 -14
@@ -102,13 +102,19 @@
102
102
  "whoami.js"
103
103
  ]
104
104
  },
105
- "errors:list": {
105
+ "alerts:create": {
106
106
  "aliases": [],
107
- "args": {},
108
- "description": "List error groups for a project",
107
+ "args": {
108
+ "name": {
109
+ "description": "Rule name",
110
+ "name": "name",
111
+ "required": true
112
+ }
113
+ },
114
+ "description": "Create an alert rule in your organization",
109
115
  "examples": [
110
- "<%= config.bin %> errors list --project acme-api",
111
- "<%= config.bin %> errors list -p acme-api --status unresolved --json"
116
+ "<%= config.bin %> alerts create \"New errors\" --event-type error_new",
117
+ "<%= config.bin %> alerts create \"API down\" --event-type uptime_down --project acme-api --throttle-minutes 30"
112
118
  ],
113
119
  "flags": {
114
120
  "json": {
@@ -118,26 +124,58 @@
118
124
  "allowNo": false,
119
125
  "type": "boolean"
120
126
  },
121
- "project": {
122
- "char": "p",
123
- "description": "Project id (UUID) or key",
124
- "name": "project",
127
+ "event-type": {
128
+ "description": "Event that triggers the rule",
129
+ "name": "event-type",
125
130
  "required": true,
126
131
  "hasDynamicHelp": false,
127
132
  "multiple": false,
133
+ "options": [
134
+ "error_new",
135
+ "error_regression",
136
+ "uptime_down",
137
+ "uptime_up",
138
+ "metric_threshold"
139
+ ],
140
+ "type": "option"
141
+ },
142
+ "min-level": {
143
+ "description": "Minimum error level that triggers the rule",
144
+ "name": "min-level",
145
+ "hasDynamicHelp": false,
146
+ "multiple": false,
128
147
  "type": "option"
129
148
  },
130
- "page": {
131
- "description": "Page number",
132
- "name": "page",
133
- "default": 1,
149
+ "threshold-ms": {
150
+ "description": "Duration threshold in milliseconds (metric rules)",
151
+ "name": "threshold-ms",
134
152
  "hasDynamicHelp": false,
135
153
  "multiple": false,
136
154
  "type": "option"
137
155
  },
138
- "status": {
139
- "description": "Filter by status (e.g. unresolved, resolved, muted)",
140
- "name": "status",
156
+ "throttle-minutes": {
157
+ "description": "Minimum minutes between notifications",
158
+ "name": "throttle-minutes",
159
+ "hasDynamicHelp": false,
160
+ "multiple": false,
161
+ "type": "option"
162
+ },
163
+ "enabled": {
164
+ "description": "Whether the rule is enabled",
165
+ "name": "enabled",
166
+ "allowNo": true,
167
+ "type": "boolean"
168
+ },
169
+ "project": {
170
+ "description": "Scope the rule to a project id (UUID)",
171
+ "name": "project",
172
+ "hasDynamicHelp": false,
173
+ "multiple": false,
174
+ "type": "option"
175
+ },
176
+ "environment": {
177
+ "description": "Scope the rule to an environment id (UUID)",
178
+ "name": "environment",
141
179
  "hasDynamicHelp": false,
142
180
  "multiple": false,
143
181
  "type": "option"
@@ -145,7 +183,7 @@
145
183
  },
146
184
  "hasDynamicHelp": false,
147
185
  "hiddenAliases": [],
148
- "id": "errors:list",
186
+ "id": "alerts:create",
149
187
  "pluginAlias": "@bussolabs/closeyourit-cli",
150
188
  "pluginName": "@bussolabs/closeyourit-cli",
151
189
  "pluginType": "core",
@@ -155,22 +193,22 @@
155
193
  "relativePath": [
156
194
  "dist",
157
195
  "commands",
158
- "errors",
159
- "list.js"
196
+ "alerts",
197
+ "create.js"
160
198
  ]
161
199
  },
162
- "errors:mute": {
200
+ "alerts:delete": {
163
201
  "aliases": [],
164
202
  "args": {
165
203
  "id": {
166
- "description": "Error group id",
204
+ "description": "Alert rule id",
167
205
  "name": "id",
168
206
  "required": true
169
207
  }
170
208
  },
171
- "description": "Mute an error group",
209
+ "description": "Delete an alert rule",
172
210
  "examples": [
173
- "<%= config.bin %> errors mute <group-id> --project acme-api"
211
+ "<%= config.bin %> alerts delete <rule-id> --confirm"
174
212
  ],
175
213
  "flags": {
176
214
  "json": {
@@ -180,19 +218,16 @@
180
218
  "allowNo": false,
181
219
  "type": "boolean"
182
220
  },
183
- "project": {
184
- "char": "p",
185
- "description": "Project id (UUID) or key",
186
- "name": "project",
187
- "required": true,
188
- "hasDynamicHelp": false,
189
- "multiple": false,
190
- "type": "option"
221
+ "confirm": {
222
+ "description": "Required: confirm the deletion",
223
+ "name": "confirm",
224
+ "allowNo": false,
225
+ "type": "boolean"
191
226
  }
192
227
  },
193
228
  "hasDynamicHelp": false,
194
229
  "hiddenAliases": [],
195
- "id": "errors:mute",
230
+ "id": "alerts:delete",
196
231
  "pluginAlias": "@bussolabs/closeyourit-cli",
197
232
  "pluginName": "@bussolabs/closeyourit-cli",
198
233
  "pluginType": "core",
@@ -202,22 +237,17 @@
202
237
  "relativePath": [
203
238
  "dist",
204
239
  "commands",
205
- "errors",
206
- "mute.js"
240
+ "alerts",
241
+ "delete.js"
207
242
  ]
208
243
  },
209
- "errors:reopen": {
244
+ "alerts:list": {
210
245
  "aliases": [],
211
- "args": {
212
- "id": {
213
- "description": "Error group id",
214
- "name": "id",
215
- "required": true
216
- }
217
- },
218
- "description": "Reopen a resolved error group",
246
+ "args": {},
247
+ "description": "List the alert rules in your organization",
219
248
  "examples": [
220
- "<%= config.bin %> errors reopen <group-id> --project acme-api"
249
+ "<%= config.bin %> alerts list",
250
+ "<%= config.bin %> alerts list --page 2 --json"
221
251
  ],
222
252
  "flags": {
223
253
  "json": {
@@ -227,11 +257,10 @@
227
257
  "allowNo": false,
228
258
  "type": "boolean"
229
259
  },
230
- "project": {
231
- "char": "p",
232
- "description": "Project id (UUID) or key",
233
- "name": "project",
234
- "required": true,
260
+ "page": {
261
+ "description": "Page number",
262
+ "name": "page",
263
+ "default": 1,
235
264
  "hasDynamicHelp": false,
236
265
  "multiple": false,
237
266
  "type": "option"
@@ -239,7 +268,7 @@
239
268
  },
240
269
  "hasDynamicHelp": false,
241
270
  "hiddenAliases": [],
242
- "id": "errors:reopen",
271
+ "id": "alerts:list",
243
272
  "pluginAlias": "@bussolabs/closeyourit-cli",
244
273
  "pluginName": "@bussolabs/closeyourit-cli",
245
274
  "pluginType": "core",
@@ -249,22 +278,22 @@
249
278
  "relativePath": [
250
279
  "dist",
251
280
  "commands",
252
- "errors",
253
- "reopen.js"
281
+ "alerts",
282
+ "list.js"
254
283
  ]
255
284
  },
256
- "errors:resolve": {
285
+ "alerts:show": {
257
286
  "aliases": [],
258
287
  "args": {
259
288
  "id": {
260
- "description": "Error group id",
289
+ "description": "Alert rule id",
261
290
  "name": "id",
262
291
  "required": true
263
292
  }
264
293
  },
265
- "description": "Mark an error group as resolved",
294
+ "description": "Show a single alert rule",
266
295
  "examples": [
267
- "<%= config.bin %> errors resolve <group-id> --project acme-api"
296
+ "<%= config.bin %> alerts show <rule-id>"
268
297
  ],
269
298
  "flags": {
270
299
  "json": {
@@ -273,20 +302,11 @@
273
302
  "name": "json",
274
303
  "allowNo": false,
275
304
  "type": "boolean"
276
- },
277
- "project": {
278
- "char": "p",
279
- "description": "Project id (UUID) or key",
280
- "name": "project",
281
- "required": true,
282
- "hasDynamicHelp": false,
283
- "multiple": false,
284
- "type": "option"
285
305
  }
286
306
  },
287
307
  "hasDynamicHelp": false,
288
308
  "hiddenAliases": [],
289
- "id": "errors:resolve",
309
+ "id": "alerts:show",
290
310
  "pluginAlias": "@bussolabs/closeyourit-cli",
291
311
  "pluginName": "@bussolabs/closeyourit-cli",
292
312
  "pluginType": "core",
@@ -296,22 +316,23 @@
296
316
  "relativePath": [
297
317
  "dist",
298
318
  "commands",
299
- "errors",
300
- "resolve.js"
319
+ "alerts",
320
+ "show.js"
301
321
  ]
302
322
  },
303
- "errors:show": {
323
+ "alerts:update": {
304
324
  "aliases": [],
305
325
  "args": {
306
326
  "id": {
307
- "description": "Error group id",
327
+ "description": "Alert rule id",
308
328
  "name": "id",
309
329
  "required": true
310
330
  }
311
331
  },
312
- "description": "Show a single error group",
332
+ "description": "Update an alert rule (send only the fields you want to change)",
313
333
  "examples": [
314
- "<%= config.bin %> errors show <group-id> --project acme-api"
334
+ "<%= config.bin %> alerts update <rule-id> --name \"Critical errors\"",
335
+ "<%= config.bin %> alerts update <rule-id> --no-enabled"
315
336
  ],
316
337
  "flags": {
317
338
  "json": {
@@ -321,11 +342,64 @@
321
342
  "allowNo": false,
322
343
  "type": "boolean"
323
344
  },
345
+ "name": {
346
+ "description": "Rule name",
347
+ "name": "name",
348
+ "hasDynamicHelp": false,
349
+ "multiple": false,
350
+ "type": "option"
351
+ },
352
+ "event-type": {
353
+ "description": "Event that triggers the rule",
354
+ "name": "event-type",
355
+ "hasDynamicHelp": false,
356
+ "multiple": false,
357
+ "options": [
358
+ "error_new",
359
+ "error_regression",
360
+ "uptime_down",
361
+ "uptime_up",
362
+ "metric_threshold"
363
+ ],
364
+ "type": "option"
365
+ },
366
+ "min-level": {
367
+ "description": "Minimum error level that triggers the rule",
368
+ "name": "min-level",
369
+ "hasDynamicHelp": false,
370
+ "multiple": false,
371
+ "type": "option"
372
+ },
373
+ "threshold-ms": {
374
+ "description": "Duration threshold in milliseconds (metric rules)",
375
+ "name": "threshold-ms",
376
+ "hasDynamicHelp": false,
377
+ "multiple": false,
378
+ "type": "option"
379
+ },
380
+ "throttle-minutes": {
381
+ "description": "Minimum minutes between notifications",
382
+ "name": "throttle-minutes",
383
+ "hasDynamicHelp": false,
384
+ "multiple": false,
385
+ "type": "option"
386
+ },
387
+ "enabled": {
388
+ "description": "Whether the rule is enabled",
389
+ "name": "enabled",
390
+ "allowNo": true,
391
+ "type": "boolean"
392
+ },
324
393
  "project": {
325
- "char": "p",
326
- "description": "Project id (UUID) or key",
394
+ "description": "Scope the rule to a project id (UUID)",
327
395
  "name": "project",
328
- "required": true,
396
+ "hasDynamicHelp": false,
397
+ "multiple": false,
398
+ "type": "option"
399
+ },
400
+ "environment": {
401
+ "description": "Scope the rule to an environment id (UUID)",
402
+ "name": "environment",
329
403
  "hasDynamicHelp": false,
330
404
  "multiple": false,
331
405
  "type": "option"
@@ -333,7 +407,7 @@
333
407
  },
334
408
  "hasDynamicHelp": false,
335
409
  "hiddenAliases": [],
336
- "id": "errors:show",
410
+ "id": "alerts:update",
337
411
  "pluginAlias": "@bussolabs/closeyourit-cli",
338
412
  "pluginName": "@bussolabs/closeyourit-cli",
339
413
  "pluginType": "core",
@@ -343,22 +417,23 @@
343
417
  "relativePath": [
344
418
  "dist",
345
419
  "commands",
346
- "errors",
347
- "show.js"
420
+ "alerts",
421
+ "update.js"
348
422
  ]
349
423
  },
350
- "errors:unmute": {
424
+ "environments:create": {
351
425
  "aliases": [],
352
426
  "args": {
353
- "id": {
354
- "description": "Error group id",
355
- "name": "id",
427
+ "code": {
428
+ "description": "Environment code (lowercase, e.g. production)",
429
+ "name": "code",
356
430
  "required": true
357
431
  }
358
432
  },
359
- "description": "Unmute an error group",
433
+ "description": "Create an environment (production, staging, …) in your organization",
360
434
  "examples": [
361
- "<%= config.bin %> errors unmute <group-id> --project acme-api"
435
+ "<%= config.bin %> environments create production --label Production",
436
+ "<%= config.bin %> environments create staging --label Staging --color amber"
362
437
  ],
363
438
  "flags": {
364
439
  "json": {
@@ -368,19 +443,39 @@
368
443
  "allowNo": false,
369
444
  "type": "boolean"
370
445
  },
371
- "project": {
372
- "char": "p",
373
- "description": "Project id (UUID) or key",
374
- "name": "project",
446
+ "label": {
447
+ "description": "Human-readable label",
448
+ "name": "label",
375
449
  "required": true,
376
450
  "hasDynamicHelp": false,
377
451
  "multiple": false,
378
452
  "type": "option"
453
+ },
454
+ "color": {
455
+ "description": "Color label",
456
+ "name": "color",
457
+ "default": "emerald",
458
+ "hasDynamicHelp": false,
459
+ "multiple": false,
460
+ "type": "option"
461
+ },
462
+ "position": {
463
+ "description": "Sort position",
464
+ "name": "position",
465
+ "hasDynamicHelp": false,
466
+ "multiple": false,
467
+ "type": "option"
468
+ },
469
+ "active": {
470
+ "description": "Whether the environment is active",
471
+ "name": "active",
472
+ "allowNo": true,
473
+ "type": "boolean"
379
474
  }
380
475
  },
381
476
  "hasDynamicHelp": false,
382
477
  "hiddenAliases": [],
383
- "id": "errors:unmute",
478
+ "id": "environments:create",
384
479
  "pluginAlias": "@bussolabs/closeyourit-cli",
385
480
  "pluginName": "@bussolabs/closeyourit-cli",
386
481
  "pluginType": "core",
@@ -390,23 +485,22 @@
390
485
  "relativePath": [
391
486
  "dist",
392
487
  "commands",
393
- "errors",
394
- "unmute.js"
488
+ "environments",
489
+ "create.js"
395
490
  ]
396
491
  },
397
- "groups:create": {
492
+ "environments:delete": {
398
493
  "aliases": [],
399
494
  "args": {
400
- "name": {
401
- "description": "Group name",
402
- "name": "name",
495
+ "environment": {
496
+ "description": "Environment id (UUID) or code",
497
+ "name": "environment",
403
498
  "required": true
404
499
  }
405
500
  },
406
- "description": "Create a group (a container of related projects, e.g. \"DriverOne\")",
501
+ "description": "Delete an environment (blocked while projects, tokens or monitors reference it)",
407
502
  "examples": [
408
- "<%= config.bin %> groups create DriverOne",
409
- "<%= config.bin %> groups create DriverOne --color indigo"
503
+ "<%= config.bin %> environments delete staging --confirm"
410
504
  ],
411
505
  "flags": {
412
506
  "json": {
@@ -416,17 +510,16 @@
416
510
  "allowNo": false,
417
511
  "type": "boolean"
418
512
  },
419
- "color": {
420
- "description": "Color label",
421
- "name": "color",
422
- "hasDynamicHelp": false,
423
- "multiple": false,
424
- "type": "option"
513
+ "confirm": {
514
+ "description": "Required: confirm the deletion",
515
+ "name": "confirm",
516
+ "allowNo": false,
517
+ "type": "boolean"
425
518
  }
426
519
  },
427
520
  "hasDynamicHelp": false,
428
521
  "hiddenAliases": [],
429
- "id": "groups:create",
522
+ "id": "environments:delete",
430
523
  "pluginAlias": "@bussolabs/closeyourit-cli",
431
524
  "pluginName": "@bussolabs/closeyourit-cli",
432
525
  "pluginType": "core",
@@ -436,17 +529,17 @@
436
529
  "relativePath": [
437
530
  "dist",
438
531
  "commands",
439
- "groups",
440
- "create.js"
532
+ "environments",
533
+ "delete.js"
441
534
  ]
442
535
  },
443
- "groups:list": {
536
+ "environments:list": {
444
537
  "aliases": [],
445
538
  "args": {},
446
- "description": "List the groups (macro-projects) in your organization",
539
+ "description": "List the environments (production, staging, …) in your organization",
447
540
  "examples": [
448
- "<%= config.bin %> groups list",
449
- "<%= config.bin %> groups list --page 2 --json"
541
+ "<%= config.bin %> environments list",
542
+ "<%= config.bin %> environments list --page 2 --json"
450
543
  ],
451
544
  "flags": {
452
545
  "json": {
@@ -467,7 +560,7 @@
467
560
  },
468
561
  "hasDynamicHelp": false,
469
562
  "hiddenAliases": [],
470
- "id": "groups:list",
563
+ "id": "environments:list",
471
564
  "pluginAlias": "@bussolabs/closeyourit-cli",
472
565
  "pluginName": "@bussolabs/closeyourit-cli",
473
566
  "pluginType": "core",
@@ -477,23 +570,24 @@
477
570
  "relativePath": [
478
571
  "dist",
479
572
  "commands",
480
- "groups",
573
+ "environments",
481
574
  "list.js"
482
575
  ]
483
576
  },
484
- "invitations:create": {
577
+ "environments:update": {
485
578
  "aliases": [],
486
579
  "args": {
487
- "email": {
488
- "description": "Email address to invite",
489
- "name": "email",
580
+ "environment": {
581
+ "description": "Environment id (UUID) or code",
582
+ "name": "environment",
490
583
  "required": true
491
584
  }
492
585
  },
493
- "description": "Invite a person to the organization. Prints the acceptance link (shown only once).",
586
+ "description": "Update an environment (recode, relabel, recolor, reorder, activate/deactivate)",
494
587
  "examples": [
495
- "<%= config.bin %> invitations create client@acme.com",
496
- "<%= config.bin %> invitations create teammate@acme.com --role member"
588
+ "<%= config.bin %> environments update staging --label \"Staging env\"",
589
+ "<%= config.bin %> environments update production --color indigo",
590
+ "<%= config.bin %> environments update staging --no-active"
497
591
  ],
498
592
  "flags": {
499
593
  "json": {
@@ -503,23 +597,44 @@
503
597
  "allowNo": false,
504
598
  "type": "boolean"
505
599
  },
506
- "role": {
507
- "description": "Membership role",
508
- "name": "role",
509
- "default": "customer",
600
+ "code": {
601
+ "description": "New code (lowercase)",
602
+ "name": "code",
603
+ "hasDynamicHelp": false,
604
+ "multiple": false,
605
+ "type": "option"
606
+ },
607
+ "label": {
608
+ "description": "New label",
609
+ "name": "label",
610
+ "hasDynamicHelp": false,
611
+ "multiple": false,
612
+ "type": "option"
613
+ },
614
+ "color": {
615
+ "description": "Color label",
616
+ "name": "color",
617
+ "hasDynamicHelp": false,
618
+ "multiple": false,
619
+ "type": "option"
620
+ },
621
+ "position": {
622
+ "description": "Sort position",
623
+ "name": "position",
510
624
  "hasDynamicHelp": false,
511
625
  "multiple": false,
512
- "options": [
513
- "customer",
514
- "member",
515
- "admin"
516
- ],
517
626
  "type": "option"
627
+ },
628
+ "active": {
629
+ "description": "Whether the environment is active",
630
+ "name": "active",
631
+ "allowNo": true,
632
+ "type": "boolean"
518
633
  }
519
634
  },
520
635
  "hasDynamicHelp": false,
521
636
  "hiddenAliases": [],
522
- "id": "invitations:create",
637
+ "id": "environments:update",
523
638
  "pluginAlias": "@bussolabs/closeyourit-cli",
524
639
  "pluginName": "@bussolabs/closeyourit-cli",
525
640
  "pluginType": "core",
@@ -529,17 +644,17 @@
529
644
  "relativePath": [
530
645
  "dist",
531
646
  "commands",
532
- "invitations",
533
- "create.js"
647
+ "environments",
648
+ "update.js"
534
649
  ]
535
650
  },
536
- "invitations:list": {
651
+ "errors:list": {
537
652
  "aliases": [],
538
653
  "args": {},
539
- "description": "List the pending/accepted invitations of your organization",
654
+ "description": "List error groups for a project",
540
655
  "examples": [
541
- "<%= config.bin %> invitations list",
542
- "<%= config.bin %> invitations list --json"
656
+ "<%= config.bin %> errors list --project acme-api",
657
+ "<%= config.bin %> errors list -p acme-api --status unresolved --json"
543
658
  ],
544
659
  "flags": {
545
660
  "json": {
@@ -549,6 +664,15 @@
549
664
  "allowNo": false,
550
665
  "type": "boolean"
551
666
  },
667
+ "project": {
668
+ "char": "p",
669
+ "description": "Project id (UUID) or key",
670
+ "name": "project",
671
+ "required": true,
672
+ "hasDynamicHelp": false,
673
+ "multiple": false,
674
+ "type": "option"
675
+ },
552
676
  "page": {
553
677
  "description": "Page number",
554
678
  "name": "page",
@@ -556,11 +680,18 @@
556
680
  "hasDynamicHelp": false,
557
681
  "multiple": false,
558
682
  "type": "option"
559
- }
560
- },
683
+ },
684
+ "status": {
685
+ "description": "Filter by status (e.g. unresolved, resolved, muted)",
686
+ "name": "status",
687
+ "hasDynamicHelp": false,
688
+ "multiple": false,
689
+ "type": "option"
690
+ }
691
+ },
561
692
  "hasDynamicHelp": false,
562
693
  "hiddenAliases": [],
563
- "id": "invitations:list",
694
+ "id": "errors:list",
564
695
  "pluginAlias": "@bussolabs/closeyourit-cli",
565
696
  "pluginName": "@bussolabs/closeyourit-cli",
566
697
  "pluginType": "core",
@@ -570,22 +701,22 @@
570
701
  "relativePath": [
571
702
  "dist",
572
703
  "commands",
573
- "invitations",
704
+ "errors",
574
705
  "list.js"
575
706
  ]
576
707
  },
577
- "invitations:revoke": {
708
+ "errors:mute": {
578
709
  "aliases": [],
579
710
  "args": {
580
711
  "id": {
581
- "description": "Invitation id (UUID)",
712
+ "description": "Error group id",
582
713
  "name": "id",
583
714
  "required": true
584
715
  }
585
716
  },
586
- "description": "Revoke a pending invitation",
717
+ "description": "Mute an error group",
587
718
  "examples": [
588
- "<%= config.bin %> invitations revoke <invitation-uuid>"
719
+ "<%= config.bin %> errors mute <group-id> --project acme-api"
589
720
  ],
590
721
  "flags": {
591
722
  "json": {
@@ -594,11 +725,20 @@
594
725
  "name": "json",
595
726
  "allowNo": false,
596
727
  "type": "boolean"
728
+ },
729
+ "project": {
730
+ "char": "p",
731
+ "description": "Project id (UUID) or key",
732
+ "name": "project",
733
+ "required": true,
734
+ "hasDynamicHelp": false,
735
+ "multiple": false,
736
+ "type": "option"
597
737
  }
598
738
  },
599
739
  "hasDynamicHelp": false,
600
740
  "hiddenAliases": [],
601
- "id": "invitations:revoke",
741
+ "id": "errors:mute",
602
742
  "pluginAlias": "@bussolabs/closeyourit-cli",
603
743
  "pluginName": "@bussolabs/closeyourit-cli",
604
744
  "pluginType": "core",
@@ -608,17 +748,22 @@
608
748
  "relativePath": [
609
749
  "dist",
610
750
  "commands",
611
- "invitations",
612
- "revoke.js"
751
+ "errors",
752
+ "mute.js"
613
753
  ]
614
754
  },
615
- "members:list": {
755
+ "errors:promote": {
616
756
  "aliases": [],
617
- "args": {},
618
- "description": "List the members of your organization (to resolve emails to account ids)",
757
+ "args": {
758
+ "id": {
759
+ "description": "Error group id",
760
+ "name": "id",
761
+ "required": true
762
+ }
763
+ },
764
+ "description": "Promote an error group to a ticket",
619
765
  "examples": [
620
- "<%= config.bin %> members list",
621
- "<%= config.bin %> members list --json"
766
+ "<%= config.bin %> errors promote <group-id> --project acme-api"
622
767
  ],
623
768
  "flags": {
624
769
  "json": {
@@ -628,10 +773,11 @@
628
773
  "allowNo": false,
629
774
  "type": "boolean"
630
775
  },
631
- "page": {
632
- "description": "Page number",
633
- "name": "page",
634
- "default": 1,
776
+ "project": {
777
+ "char": "p",
778
+ "description": "Project id (UUID) or key",
779
+ "name": "project",
780
+ "required": true,
635
781
  "hasDynamicHelp": false,
636
782
  "multiple": false,
637
783
  "type": "option"
@@ -639,7 +785,7 @@
639
785
  },
640
786
  "hasDynamicHelp": false,
641
787
  "hiddenAliases": [],
642
- "id": "members:list",
788
+ "id": "errors:promote",
643
789
  "pluginAlias": "@bussolabs/closeyourit-cli",
644
790
  "pluginName": "@bussolabs/closeyourit-cli",
645
791
  "pluginType": "core",
@@ -649,24 +795,22 @@
649
795
  "relativePath": [
650
796
  "dist",
651
797
  "commands",
652
- "members",
653
- "list.js"
798
+ "errors",
799
+ "promote.js"
654
800
  ]
655
801
  },
656
- "projects:create": {
802
+ "errors:reopen": {
657
803
  "aliases": [],
658
804
  "args": {
659
- "name": {
660
- "description": "Project name",
661
- "name": "name",
805
+ "id": {
806
+ "description": "Error group id",
807
+ "name": "id",
662
808
  "required": true
663
809
  }
664
810
  },
665
- "description": "Create a project (optionally inside a group)",
811
+ "description": "Reopen a resolved error group",
666
812
  "examples": [
667
- "<%= config.bin %> projects create driverone-rails --key DRRA",
668
- "<%= config.bin %> projects create driverone-rails --group DriverOne --key DRRA",
669
- "<%= config.bin %> projects create driverone-flutter -g <group-uuid> -k DRFL"
813
+ "<%= config.bin %> errors reopen <group-id> --project acme-api"
670
814
  ],
671
815
  "flags": {
672
816
  "json": {
@@ -676,32 +820,11 @@
676
820
  "allowNo": false,
677
821
  "type": "boolean"
678
822
  },
679
- "color": {
680
- "description": "Color label",
681
- "name": "color",
682
- "hasDynamicHelp": false,
683
- "multiple": false,
684
- "type": "option"
685
- },
686
- "description": {
687
- "description": "Free-form description",
688
- "name": "description",
689
- "hasDynamicHelp": false,
690
- "multiple": false,
691
- "type": "option"
692
- },
693
- "group": {
694
- "char": "g",
695
- "description": "Group id (UUID) or name to place the project in",
696
- "name": "group",
697
- "hasDynamicHelp": false,
698
- "multiple": false,
699
- "type": "option"
700
- },
701
- "key": {
702
- "char": "k",
703
- "description": "Project key (uppercase A-Z0-9, unique per org; derived from the name if omitted)",
704
- "name": "key",
823
+ "project": {
824
+ "char": "p",
825
+ "description": "Project id (UUID) or key",
826
+ "name": "project",
827
+ "required": true,
705
828
  "hasDynamicHelp": false,
706
829
  "multiple": false,
707
830
  "type": "option"
@@ -709,7 +832,7 @@
709
832
  },
710
833
  "hasDynamicHelp": false,
711
834
  "hiddenAliases": [],
712
- "id": "projects:create",
835
+ "id": "errors:reopen",
713
836
  "pluginAlias": "@bussolabs/closeyourit-cli",
714
837
  "pluginName": "@bussolabs/closeyourit-cli",
715
838
  "pluginType": "core",
@@ -719,17 +842,22 @@
719
842
  "relativePath": [
720
843
  "dist",
721
844
  "commands",
722
- "projects",
723
- "create.js"
845
+ "errors",
846
+ "reopen.js"
724
847
  ]
725
848
  },
726
- "projects:list": {
849
+ "errors:resolve": {
727
850
  "aliases": [],
728
- "args": {},
729
- "description": "List the projects visible to you",
851
+ "args": {
852
+ "id": {
853
+ "description": "Error group id",
854
+ "name": "id",
855
+ "required": true
856
+ }
857
+ },
858
+ "description": "Mark an error group as resolved",
730
859
  "examples": [
731
- "<%= config.bin %> projects list",
732
- "<%= config.bin %> projects list --page 2 --json"
860
+ "<%= config.bin %> errors resolve <group-id> --project acme-api"
733
861
  ],
734
862
  "flags": {
735
863
  "json": {
@@ -739,10 +867,11 @@
739
867
  "allowNo": false,
740
868
  "type": "boolean"
741
869
  },
742
- "page": {
743
- "description": "Page number",
744
- "name": "page",
745
- "default": 1,
870
+ "project": {
871
+ "char": "p",
872
+ "description": "Project id (UUID) or key",
873
+ "name": "project",
874
+ "required": true,
746
875
  "hasDynamicHelp": false,
747
876
  "multiple": false,
748
877
  "type": "option"
@@ -750,7 +879,7 @@
750
879
  },
751
880
  "hasDynamicHelp": false,
752
881
  "hiddenAliases": [],
753
- "id": "projects:list",
882
+ "id": "errors:resolve",
754
883
  "pluginAlias": "@bussolabs/closeyourit-cli",
755
884
  "pluginName": "@bussolabs/closeyourit-cli",
756
885
  "pluginType": "core",
@@ -760,17 +889,22 @@
760
889
  "relativePath": [
761
890
  "dist",
762
891
  "commands",
763
- "projects",
764
- "list.js"
892
+ "errors",
893
+ "resolve.js"
765
894
  ]
766
895
  },
767
- "projects:set-environments": {
896
+ "errors:show": {
768
897
  "aliases": [],
769
- "args": {},
770
- "description": "Declare the environments a project receives data from (replaces the current set)",
898
+ "args": {
899
+ "id": {
900
+ "description": "Error group id",
901
+ "name": "id",
902
+ "required": true
903
+ }
904
+ },
905
+ "description": "Show a single error group",
771
906
  "examples": [
772
- "<%= config.bin %> projects set-environments --project legalbloom-rails --code production",
773
- "<%= config.bin %> projects set-environments -p LBRA --code production --code staging"
907
+ "<%= config.bin %> errors show <group-id> --project acme-api"
774
908
  ],
775
909
  "flags": {
776
910
  "json": {
@@ -788,27 +922,11 @@
788
922
  "hasDynamicHelp": false,
789
923
  "multiple": false,
790
924
  "type": "option"
791
- },
792
- "code": {
793
- "description": "Environment code, e.g. production (repeatable)",
794
- "name": "code",
795
- "default": [],
796
- "hasDynamicHelp": false,
797
- "multiple": true,
798
- "type": "option"
799
- },
800
- "environment-id": {
801
- "description": "Environment id / UUID (repeatable)",
802
- "name": "environment-id",
803
- "default": [],
804
- "hasDynamicHelp": false,
805
- "multiple": true,
806
- "type": "option"
807
925
  }
808
926
  },
809
927
  "hasDynamicHelp": false,
810
928
  "hiddenAliases": [],
811
- "id": "projects:set-environments",
929
+ "id": "errors:show",
812
930
  "pluginAlias": "@bussolabs/closeyourit-cli",
813
931
  "pluginName": "@bussolabs/closeyourit-cli",
814
932
  "pluginType": "core",
@@ -818,23 +936,22 @@
818
936
  "relativePath": [
819
937
  "dist",
820
938
  "commands",
821
- "projects",
822
- "set-environments.js"
939
+ "errors",
940
+ "show.js"
823
941
  ]
824
942
  },
825
- "projects:show": {
943
+ "errors:unmute": {
826
944
  "aliases": [],
827
945
  "args": {
828
946
  "id": {
829
- "description": "Project id (UUID) or key",
947
+ "description": "Error group id",
830
948
  "name": "id",
831
949
  "required": true
832
950
  }
833
951
  },
834
- "description": "Show a single project by id or key",
952
+ "description": "Unmute an error group",
835
953
  "examples": [
836
- "<%= config.bin %> projects show acme-api",
837
- "<%= config.bin %> projects show <uuid> --json"
954
+ "<%= config.bin %> errors unmute <group-id> --project acme-api"
838
955
  ],
839
956
  "flags": {
840
957
  "json": {
@@ -843,11 +960,20 @@
843
960
  "name": "json",
844
961
  "allowNo": false,
845
962
  "type": "boolean"
963
+ },
964
+ "project": {
965
+ "char": "p",
966
+ "description": "Project id (UUID) or key",
967
+ "name": "project",
968
+ "required": true,
969
+ "hasDynamicHelp": false,
970
+ "multiple": false,
971
+ "type": "option"
846
972
  }
847
973
  },
848
974
  "hasDynamicHelp": false,
849
975
  "hiddenAliases": [],
850
- "id": "projects:show",
976
+ "id": "errors:unmute",
851
977
  "pluginAlias": "@bussolabs/closeyourit-cli",
852
978
  "pluginName": "@bussolabs/closeyourit-cli",
853
979
  "pluginType": "core",
@@ -857,22 +983,23 @@
857
983
  "relativePath": [
858
984
  "dist",
859
985
  "commands",
860
- "projects",
861
- "show.js"
986
+ "errors",
987
+ "unmute.js"
862
988
  ]
863
989
  },
864
- "roles:create": {
990
+ "invitations:create": {
865
991
  "aliases": [],
866
992
  "args": {
867
- "name": {
868
- "description": "Role name",
869
- "name": "name",
993
+ "email": {
994
+ "description": "Email address to invite",
995
+ "name": "email",
870
996
  "required": true
871
997
  }
872
998
  },
873
- "description": "Create an RBAC role (a named bundle of permission keys)",
999
+ "description": "Invite a person to the organization. Prints the acceptance link (shown only once).",
874
1000
  "examples": [
875
- "<%= config.bin %> roles create Client --permission tickets.edit --permission tickets.assign"
1001
+ "<%= config.bin %> invitations create client@acme.com",
1002
+ "<%= config.bin %> invitations create teammate@acme.com --role member"
876
1003
  ],
877
1004
  "flags": {
878
1005
  "json": {
@@ -882,24 +1009,23 @@
882
1009
  "allowNo": false,
883
1010
  "type": "boolean"
884
1011
  },
885
- "color": {
886
- "description": "Color label",
887
- "name": "color",
1012
+ "role": {
1013
+ "description": "Membership role",
1014
+ "name": "role",
1015
+ "default": "customer",
888
1016
  "hasDynamicHelp": false,
889
1017
  "multiple": false,
890
- "type": "option"
891
- },
892
- "permission": {
893
- "description": "Permission key from the catalog (repeatable)",
894
- "name": "permission",
895
- "hasDynamicHelp": false,
896
- "multiple": true,
1018
+ "options": [
1019
+ "customer",
1020
+ "member",
1021
+ "admin"
1022
+ ],
897
1023
  "type": "option"
898
1024
  }
899
1025
  },
900
1026
  "hasDynamicHelp": false,
901
1027
  "hiddenAliases": [],
902
- "id": "roles:create",
1028
+ "id": "invitations:create",
903
1029
  "pluginAlias": "@bussolabs/closeyourit-cli",
904
1030
  "pluginName": "@bussolabs/closeyourit-cli",
905
1031
  "pluginType": "core",
@@ -909,22 +1035,17 @@
909
1035
  "relativePath": [
910
1036
  "dist",
911
1037
  "commands",
912
- "roles",
1038
+ "invitations",
913
1039
  "create.js"
914
1040
  ]
915
1041
  },
916
- "roles:delete": {
1042
+ "invitations:list": {
917
1043
  "aliases": [],
918
- "args": {
919
- "role": {
920
- "description": "Role id (UUID) or name",
921
- "name": "role",
922
- "required": true
923
- }
924
- },
925
- "description": "Delete a role (its assignments to teams and accounts are removed)",
1044
+ "args": {},
1045
+ "description": "List the pending/accepted invitations of your organization",
926
1046
  "examples": [
927
- "<%= config.bin %> roles delete Client"
1047
+ "<%= config.bin %> invitations list",
1048
+ "<%= config.bin %> invitations list --json"
928
1049
  ],
929
1050
  "flags": {
930
1051
  "json": {
@@ -933,11 +1054,19 @@
933
1054
  "name": "json",
934
1055
  "allowNo": false,
935
1056
  "type": "boolean"
936
- }
937
- },
938
- "hasDynamicHelp": false,
1057
+ },
1058
+ "page": {
1059
+ "description": "Page number",
1060
+ "name": "page",
1061
+ "default": 1,
1062
+ "hasDynamicHelp": false,
1063
+ "multiple": false,
1064
+ "type": "option"
1065
+ }
1066
+ },
1067
+ "hasDynamicHelp": false,
939
1068
  "hiddenAliases": [],
940
- "id": "roles:delete",
1069
+ "id": "invitations:list",
941
1070
  "pluginAlias": "@bussolabs/closeyourit-cli",
942
1071
  "pluginName": "@bussolabs/closeyourit-cli",
943
1072
  "pluginType": "core",
@@ -947,17 +1076,22 @@
947
1076
  "relativePath": [
948
1077
  "dist",
949
1078
  "commands",
950
- "roles",
951
- "delete.js"
1079
+ "invitations",
1080
+ "list.js"
952
1081
  ]
953
1082
  },
954
- "roles:list": {
1083
+ "invitations:resend": {
955
1084
  "aliases": [],
956
- "args": {},
957
- "description": "List the RBAC roles in your organization",
1085
+ "args": {
1086
+ "id": {
1087
+ "description": "Invitation id (UUID)",
1088
+ "name": "id",
1089
+ "required": true
1090
+ }
1091
+ },
1092
+ "description": "Resend a pending invitation. Prints the acceptance link (shown only once).",
958
1093
  "examples": [
959
- "<%= config.bin %> roles list",
960
- "<%= config.bin %> roles list --json"
1094
+ "<%= config.bin %> invitations resend <invitation-uuid>"
961
1095
  ],
962
1096
  "flags": {
963
1097
  "json": {
@@ -966,19 +1100,11 @@
966
1100
  "name": "json",
967
1101
  "allowNo": false,
968
1102
  "type": "boolean"
969
- },
970
- "page": {
971
- "description": "Page number",
972
- "name": "page",
973
- "default": 1,
974
- "hasDynamicHelp": false,
975
- "multiple": false,
976
- "type": "option"
977
1103
  }
978
1104
  },
979
1105
  "hasDynamicHelp": false,
980
1106
  "hiddenAliases": [],
981
- "id": "roles:list",
1107
+ "id": "invitations:resend",
982
1108
  "pluginAlias": "@bussolabs/closeyourit-cli",
983
1109
  "pluginName": "@bussolabs/closeyourit-cli",
984
1110
  "pluginType": "core",
@@ -988,22 +1114,22 @@
988
1114
  "relativePath": [
989
1115
  "dist",
990
1116
  "commands",
991
- "roles",
992
- "list.js"
1117
+ "invitations",
1118
+ "resend.js"
993
1119
  ]
994
1120
  },
995
- "roles:show": {
1121
+ "invitations:revoke": {
996
1122
  "aliases": [],
997
1123
  "args": {
998
- "role": {
999
- "description": "Role id (UUID) or name",
1000
- "name": "role",
1124
+ "id": {
1125
+ "description": "Invitation id (UUID)",
1126
+ "name": "id",
1001
1127
  "required": true
1002
1128
  }
1003
1129
  },
1004
- "description": "Show a role by id or name (with its permission keys)",
1130
+ "description": "Revoke a pending invitation",
1005
1131
  "examples": [
1006
- "<%= config.bin %> roles show Client"
1132
+ "<%= config.bin %> invitations revoke <invitation-uuid>"
1007
1133
  ],
1008
1134
  "flags": {
1009
1135
  "json": {
@@ -1016,7 +1142,7 @@
1016
1142
  },
1017
1143
  "hasDynamicHelp": false,
1018
1144
  "hiddenAliases": [],
1019
- "id": "roles:show",
1145
+ "id": "invitations:revoke",
1020
1146
  "pluginAlias": "@bussolabs/closeyourit-cli",
1021
1147
  "pluginName": "@bussolabs/closeyourit-cli",
1022
1148
  "pluginType": "core",
@@ -1026,23 +1152,23 @@
1026
1152
  "relativePath": [
1027
1153
  "dist",
1028
1154
  "commands",
1029
- "roles",
1030
- "show.js"
1155
+ "invitations",
1156
+ "revoke.js"
1031
1157
  ]
1032
1158
  },
1033
- "roles:update": {
1159
+ "groups:create": {
1034
1160
  "aliases": [],
1035
1161
  "args": {
1036
- "role": {
1037
- "description": "Role id (UUID) or name",
1038
- "name": "role",
1162
+ "name": {
1163
+ "description": "Group name",
1164
+ "name": "name",
1039
1165
  "required": true
1040
1166
  }
1041
1167
  },
1042
- "description": "Update a role (rename, recolor, or replace its permission keys)",
1168
+ "description": "Create a group (a container of related projects, e.g. \"DriverOne\")",
1043
1169
  "examples": [
1044
- "<%= config.bin %> roles update Client --permission tickets.edit --permission tickets.assign",
1045
- "<%= config.bin %> roles update Client --name \"Client manager\""
1170
+ "<%= config.bin %> groups create DriverOne",
1171
+ "<%= config.bin %> groups create DriverOne --color indigo"
1046
1172
  ],
1047
1173
  "flags": {
1048
1174
  "json": {
@@ -1058,25 +1184,11 @@
1058
1184
  "hasDynamicHelp": false,
1059
1185
  "multiple": false,
1060
1186
  "type": "option"
1061
- },
1062
- "name": {
1063
- "description": "New name",
1064
- "name": "name",
1065
- "hasDynamicHelp": false,
1066
- "multiple": false,
1067
- "type": "option"
1068
- },
1069
- "permission": {
1070
- "description": "Permission key (repeatable); when given, REPLACES the whole set",
1071
- "name": "permission",
1072
- "hasDynamicHelp": false,
1073
- "multiple": true,
1074
- "type": "option"
1075
1187
  }
1076
1188
  },
1077
1189
  "hasDynamicHelp": false,
1078
1190
  "hiddenAliases": [],
1079
- "id": "roles:update",
1191
+ "id": "groups:create",
1080
1192
  "pluginAlias": "@bussolabs/closeyourit-cli",
1081
1193
  "pluginName": "@bussolabs/closeyourit-cli",
1082
1194
  "pluginType": "core",
@@ -1086,17 +1198,22 @@
1086
1198
  "relativePath": [
1087
1199
  "dist",
1088
1200
  "commands",
1089
- "roles",
1090
- "update.js"
1201
+ "groups",
1202
+ "create.js"
1091
1203
  ]
1092
1204
  },
1093
- "metrics:list": {
1205
+ "groups:delete": {
1094
1206
  "aliases": [],
1095
- "args": {},
1096
- "description": "List performance metric groups (slow queries/methods) for a project",
1207
+ "args": {
1208
+ "group": {
1209
+ "description": "Group id (UUID) or name",
1210
+ "name": "group",
1211
+ "required": true
1212
+ }
1213
+ },
1214
+ "description": "Delete a group (its projects are detached, not deleted)",
1097
1215
  "examples": [
1098
- "<%= config.bin %> metrics list --project acme-api",
1099
- "<%= config.bin %> metrics list -p acme-api --kind sql --json"
1216
+ "<%= config.bin %> groups delete Backend --confirm"
1100
1217
  ],
1101
1218
  "flags": {
1102
1219
  "json": {
@@ -1106,34 +1223,16 @@
1106
1223
  "allowNo": false,
1107
1224
  "type": "boolean"
1108
1225
  },
1109
- "project": {
1110
- "char": "p",
1111
- "description": "Project id (UUID) or key",
1112
- "name": "project",
1113
- "required": true,
1114
- "hasDynamicHelp": false,
1115
- "multiple": false,
1116
- "type": "option"
1117
- },
1118
- "page": {
1119
- "description": "Page number",
1120
- "name": "page",
1121
- "default": 1,
1122
- "hasDynamicHelp": false,
1123
- "multiple": false,
1124
- "type": "option"
1125
- },
1126
- "kind": {
1127
- "description": "Filter by metric kind (e.g. sql, method)",
1128
- "name": "kind",
1129
- "hasDynamicHelp": false,
1130
- "multiple": false,
1131
- "type": "option"
1226
+ "confirm": {
1227
+ "description": "Required: confirm the deletion",
1228
+ "name": "confirm",
1229
+ "allowNo": false,
1230
+ "type": "boolean"
1132
1231
  }
1133
1232
  },
1134
1233
  "hasDynamicHelp": false,
1135
1234
  "hiddenAliases": [],
1136
- "id": "metrics:list",
1235
+ "id": "groups:delete",
1137
1236
  "pluginAlias": "@bussolabs/closeyourit-cli",
1138
1237
  "pluginName": "@bussolabs/closeyourit-cli",
1139
1238
  "pluginType": "core",
@@ -1143,22 +1242,17 @@
1143
1242
  "relativePath": [
1144
1243
  "dist",
1145
1244
  "commands",
1146
- "metrics",
1147
- "list.js"
1245
+ "groups",
1246
+ "delete.js"
1148
1247
  ]
1149
1248
  },
1150
- "metrics:show": {
1249
+ "groups:list": {
1151
1250
  "aliases": [],
1152
- "args": {
1153
- "id": {
1154
- "description": "Metric group id",
1155
- "name": "id",
1156
- "required": true
1157
- }
1158
- },
1159
- "description": "Show a single metric group",
1251
+ "args": {},
1252
+ "description": "List the groups (macro-projects) in your organization",
1160
1253
  "examples": [
1161
- "<%= config.bin %> metrics show <group-id> --project acme-api"
1254
+ "<%= config.bin %> groups list",
1255
+ "<%= config.bin %> groups list --page 2 --json"
1162
1256
  ],
1163
1257
  "flags": {
1164
1258
  "json": {
@@ -1168,11 +1262,10 @@
1168
1262
  "allowNo": false,
1169
1263
  "type": "boolean"
1170
1264
  },
1171
- "project": {
1172
- "char": "p",
1173
- "description": "Project id (UUID) or key",
1174
- "name": "project",
1175
- "required": true,
1265
+ "page": {
1266
+ "description": "Page number",
1267
+ "name": "page",
1268
+ "default": 1,
1176
1269
  "hasDynamicHelp": false,
1177
1270
  "multiple": false,
1178
1271
  "type": "option"
@@ -1180,7 +1273,7 @@
1180
1273
  },
1181
1274
  "hasDynamicHelp": false,
1182
1275
  "hiddenAliases": [],
1183
- "id": "metrics:show",
1276
+ "id": "groups:list",
1184
1277
  "pluginAlias": "@bussolabs/closeyourit-cli",
1185
1278
  "pluginName": "@bussolabs/closeyourit-cli",
1186
1279
  "pluginType": "core",
@@ -1190,27 +1283,23 @@
1190
1283
  "relativePath": [
1191
1284
  "dist",
1192
1285
  "commands",
1193
- "metrics",
1194
- "show.js"
1286
+ "groups",
1287
+ "list.js"
1195
1288
  ]
1196
1289
  },
1197
- "teams:add-member": {
1290
+ "groups:update": {
1198
1291
  "aliases": [],
1199
1292
  "args": {
1200
- "team": {
1201
- "description": "Team id (UUID) or name",
1202
- "name": "team",
1203
- "required": true
1204
- },
1205
- "member": {
1206
- "description": "Member account id or email (must be an org member)",
1207
- "name": "member",
1293
+ "group": {
1294
+ "description": "Group id (UUID) or name",
1295
+ "name": "group",
1208
1296
  "required": true
1209
1297
  }
1210
1298
  },
1211
- "description": "Add a person to a team, keeping the existing members",
1299
+ "description": "Update a group (rename or recolor)",
1212
1300
  "examples": [
1213
- "<%= config.bin %> teams add-member DriverOne client@acme.com"
1301
+ "<%= config.bin %> groups update Backend --name \"Backend services\"",
1302
+ "<%= config.bin %> groups update Backend --color indigo"
1214
1303
  ],
1215
1304
  "flags": {
1216
1305
  "json": {
@@ -1219,11 +1308,25 @@
1219
1308
  "name": "json",
1220
1309
  "allowNo": false,
1221
1310
  "type": "boolean"
1311
+ },
1312
+ "name": {
1313
+ "description": "New name",
1314
+ "name": "name",
1315
+ "hasDynamicHelp": false,
1316
+ "multiple": false,
1317
+ "type": "option"
1318
+ },
1319
+ "color": {
1320
+ "description": "Color label",
1321
+ "name": "color",
1322
+ "hasDynamicHelp": false,
1323
+ "multiple": false,
1324
+ "type": "option"
1222
1325
  }
1223
1326
  },
1224
1327
  "hasDynamicHelp": false,
1225
1328
  "hiddenAliases": [],
1226
- "id": "teams:add-member",
1329
+ "id": "groups:update",
1227
1330
  "pluginAlias": "@bussolabs/closeyourit-cli",
1228
1331
  "pluginName": "@bussolabs/closeyourit-cli",
1229
1332
  "pluginType": "core",
@@ -1233,23 +1336,18 @@
1233
1336
  "relativePath": [
1234
1337
  "dist",
1235
1338
  "commands",
1236
- "teams",
1237
- "add-member.js"
1339
+ "groups",
1340
+ "update.js"
1238
1341
  ]
1239
1342
  },
1240
- "teams:create": {
1343
+ "logs:list": {
1241
1344
  "aliases": [],
1242
- "args": {
1243
- "name": {
1244
- "description": "Team name",
1245
- "name": "name",
1246
- "required": true
1247
- }
1248
- },
1249
- "description": "Create a team and (optionally) set its roles, group/project scope and members",
1345
+ "args": {},
1346
+ "description": "List structured log entries (cross-app stream)",
1250
1347
  "examples": [
1251
- "<%= config.bin %> teams create DriverOne --role Client --group DriverOne",
1252
- "<%= config.bin %> teams create DriverOne --role Client --group DriverOne --member client@acme.com"
1348
+ "<%= config.bin %> logs list",
1349
+ "<%= config.bin %> logs list --project acme-api --level error",
1350
+ "<%= config.bin %> logs list --trace-id 7f3c… --json"
1253
1351
  ],
1254
1352
  "flags": {
1255
1353
  "json": {
@@ -1259,45 +1357,47 @@
1259
1357
  "allowNo": false,
1260
1358
  "type": "boolean"
1261
1359
  },
1262
- "color": {
1263
- "description": "Color label",
1264
- "name": "color",
1360
+ "project": {
1361
+ "char": "p",
1362
+ "description": "Filter by project id (UUID) or key",
1363
+ "name": "project",
1265
1364
  "hasDynamicHelp": false,
1266
1365
  "multiple": false,
1267
1366
  "type": "option"
1268
1367
  },
1269
- "group": {
1270
- "description": "Group id or name to scope the team to (repeatable)",
1271
- "name": "group",
1368
+ "level": {
1369
+ "description": "Filter by level (debug, info, warning, error, fatal)",
1370
+ "name": "level",
1272
1371
  "hasDynamicHelp": false,
1273
- "multiple": true,
1372
+ "multiple": false,
1274
1373
  "type": "option"
1275
1374
  },
1276
- "member": {
1277
- "description": "Member account id or email (repeatable; must be an org member)",
1278
- "name": "member",
1375
+ "trace-id": {
1376
+ "description": "Filter by trace id (correlate one request)",
1377
+ "name": "trace-id",
1279
1378
  "hasDynamicHelp": false,
1280
- "multiple": true,
1379
+ "multiple": false,
1281
1380
  "type": "option"
1282
1381
  },
1283
- "project": {
1284
- "description": "Project id or key to scope the team to (repeatable)",
1285
- "name": "project",
1382
+ "environment": {
1383
+ "description": "Filter by environment (e.g. production)",
1384
+ "name": "environment",
1286
1385
  "hasDynamicHelp": false,
1287
- "multiple": true,
1386
+ "multiple": false,
1288
1387
  "type": "option"
1289
1388
  },
1290
- "role": {
1291
- "description": "Role id or name to grant to the team (repeatable)",
1292
- "name": "role",
1389
+ "page": {
1390
+ "description": "Page number",
1391
+ "name": "page",
1392
+ "default": 1,
1293
1393
  "hasDynamicHelp": false,
1294
- "multiple": true,
1394
+ "multiple": false,
1295
1395
  "type": "option"
1296
1396
  }
1297
1397
  },
1298
1398
  "hasDynamicHelp": false,
1299
1399
  "hiddenAliases": [],
1300
- "id": "teams:create",
1400
+ "id": "logs:list",
1301
1401
  "pluginAlias": "@bussolabs/closeyourit-cli",
1302
1402
  "pluginName": "@bussolabs/closeyourit-cli",
1303
1403
  "pluginType": "core",
@@ -1307,23 +1407,2684 @@
1307
1407
  "relativePath": [
1308
1408
  "dist",
1309
1409
  "commands",
1310
- "teams",
1311
- "create.js"
1410
+ "logs",
1411
+ "list.js"
1312
1412
  ]
1313
1413
  },
1314
- "teams:delete": {
1414
+ "members:list": {
1315
1415
  "aliases": [],
1316
- "args": {
1317
- "team": {
1318
- "description": "Team id (UUID) or name",
1319
- "name": "team",
1320
- "required": true
1321
- }
1322
- },
1323
- "description": "Delete a team (its members lose the access this team granted)",
1416
+ "args": {},
1417
+ "description": "List the members of your organization (to resolve emails to account ids)",
1324
1418
  "examples": [
1325
- "<%= config.bin %> teams delete DriverOne"
1326
- ],
1419
+ "<%= config.bin %> members list",
1420
+ "<%= config.bin %> members list --json"
1421
+ ],
1422
+ "flags": {
1423
+ "json": {
1424
+ "description": "Format output as json.",
1425
+ "helpGroup": "GLOBAL",
1426
+ "name": "json",
1427
+ "allowNo": false,
1428
+ "type": "boolean"
1429
+ },
1430
+ "page": {
1431
+ "description": "Page number",
1432
+ "name": "page",
1433
+ "default": 1,
1434
+ "hasDynamicHelp": false,
1435
+ "multiple": false,
1436
+ "type": "option"
1437
+ }
1438
+ },
1439
+ "hasDynamicHelp": false,
1440
+ "hiddenAliases": [],
1441
+ "id": "members:list",
1442
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1443
+ "pluginName": "@bussolabs/closeyourit-cli",
1444
+ "pluginType": "core",
1445
+ "strict": true,
1446
+ "enableJsonFlag": true,
1447
+ "isESM": false,
1448
+ "relativePath": [
1449
+ "dist",
1450
+ "commands",
1451
+ "members",
1452
+ "list.js"
1453
+ ]
1454
+ },
1455
+ "members:set-access": {
1456
+ "aliases": [],
1457
+ "args": {
1458
+ "id": {
1459
+ "description": "Membership id",
1460
+ "name": "id",
1461
+ "required": true
1462
+ }
1463
+ },
1464
+ "description": "Set a member's group and project access (replaces the current set; omit a flag to clear it)",
1465
+ "examples": [
1466
+ "<%= config.bin %> members set-access <membership-id> --project acme-api --project acme-web",
1467
+ "<%= config.bin %> members set-access <membership-id> --group DriverOne",
1468
+ "<%= config.bin %> members set-access <membership-id>"
1469
+ ],
1470
+ "flags": {
1471
+ "json": {
1472
+ "description": "Format output as json.",
1473
+ "helpGroup": "GLOBAL",
1474
+ "name": "json",
1475
+ "allowNo": false,
1476
+ "type": "boolean"
1477
+ },
1478
+ "group": {
1479
+ "description": "Group id or name to grant access to (repeatable; omit to clear group access)",
1480
+ "name": "group",
1481
+ "default": [],
1482
+ "hasDynamicHelp": false,
1483
+ "multiple": true,
1484
+ "type": "option"
1485
+ },
1486
+ "project": {
1487
+ "description": "Project id or key to grant access to (repeatable; omit to clear project access)",
1488
+ "name": "project",
1489
+ "default": [],
1490
+ "hasDynamicHelp": false,
1491
+ "multiple": true,
1492
+ "type": "option"
1493
+ }
1494
+ },
1495
+ "hasDynamicHelp": false,
1496
+ "hiddenAliases": [],
1497
+ "id": "members:set-access",
1498
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1499
+ "pluginName": "@bussolabs/closeyourit-cli",
1500
+ "pluginType": "core",
1501
+ "strict": true,
1502
+ "enableJsonFlag": true,
1503
+ "isESM": false,
1504
+ "relativePath": [
1505
+ "dist",
1506
+ "commands",
1507
+ "members",
1508
+ "set-access.js"
1509
+ ]
1510
+ },
1511
+ "members:set-role": {
1512
+ "aliases": [],
1513
+ "args": {
1514
+ "id": {
1515
+ "description": "Membership id",
1516
+ "name": "id",
1517
+ "required": true
1518
+ }
1519
+ },
1520
+ "description": "Change a member's organization role",
1521
+ "examples": [
1522
+ "<%= config.bin %> members set-role <membership-id> --role admin",
1523
+ "<%= config.bin %> members set-role <membership-id> --role customer"
1524
+ ],
1525
+ "flags": {
1526
+ "json": {
1527
+ "description": "Format output as json.",
1528
+ "helpGroup": "GLOBAL",
1529
+ "name": "json",
1530
+ "allowNo": false,
1531
+ "type": "boolean"
1532
+ },
1533
+ "role": {
1534
+ "description": "Organization role",
1535
+ "name": "role",
1536
+ "required": true,
1537
+ "hasDynamicHelp": false,
1538
+ "multiple": false,
1539
+ "options": [
1540
+ "member",
1541
+ "admin",
1542
+ "owner",
1543
+ "customer"
1544
+ ],
1545
+ "type": "option"
1546
+ }
1547
+ },
1548
+ "hasDynamicHelp": false,
1549
+ "hiddenAliases": [],
1550
+ "id": "members:set-role",
1551
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1552
+ "pluginName": "@bussolabs/closeyourit-cli",
1553
+ "pluginType": "core",
1554
+ "strict": true,
1555
+ "enableJsonFlag": true,
1556
+ "isESM": false,
1557
+ "relativePath": [
1558
+ "dist",
1559
+ "commands",
1560
+ "members",
1561
+ "set-role.js"
1562
+ ]
1563
+ },
1564
+ "metrics:list": {
1565
+ "aliases": [],
1566
+ "args": {},
1567
+ "description": "List performance metric groups (slow queries/methods) for a project",
1568
+ "examples": [
1569
+ "<%= config.bin %> metrics list --project acme-api",
1570
+ "<%= config.bin %> metrics list -p acme-api --kind sql --json"
1571
+ ],
1572
+ "flags": {
1573
+ "json": {
1574
+ "description": "Format output as json.",
1575
+ "helpGroup": "GLOBAL",
1576
+ "name": "json",
1577
+ "allowNo": false,
1578
+ "type": "boolean"
1579
+ },
1580
+ "project": {
1581
+ "char": "p",
1582
+ "description": "Project id (UUID) or key",
1583
+ "name": "project",
1584
+ "required": true,
1585
+ "hasDynamicHelp": false,
1586
+ "multiple": false,
1587
+ "type": "option"
1588
+ },
1589
+ "page": {
1590
+ "description": "Page number",
1591
+ "name": "page",
1592
+ "default": 1,
1593
+ "hasDynamicHelp": false,
1594
+ "multiple": false,
1595
+ "type": "option"
1596
+ },
1597
+ "kind": {
1598
+ "description": "Filter by metric kind (e.g. sql, method)",
1599
+ "name": "kind",
1600
+ "hasDynamicHelp": false,
1601
+ "multiple": false,
1602
+ "type": "option"
1603
+ }
1604
+ },
1605
+ "hasDynamicHelp": false,
1606
+ "hiddenAliases": [],
1607
+ "id": "metrics:list",
1608
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1609
+ "pluginName": "@bussolabs/closeyourit-cli",
1610
+ "pluginType": "core",
1611
+ "strict": true,
1612
+ "enableJsonFlag": true,
1613
+ "isESM": false,
1614
+ "relativePath": [
1615
+ "dist",
1616
+ "commands",
1617
+ "metrics",
1618
+ "list.js"
1619
+ ]
1620
+ },
1621
+ "metrics:promote": {
1622
+ "aliases": [],
1623
+ "args": {
1624
+ "id": {
1625
+ "description": "Metric group id",
1626
+ "name": "id",
1627
+ "required": true
1628
+ }
1629
+ },
1630
+ "description": "Promote a metric group (slow query/method) to a ticket",
1631
+ "examples": [
1632
+ "<%= config.bin %> metrics promote <group-id> --project acme-api"
1633
+ ],
1634
+ "flags": {
1635
+ "json": {
1636
+ "description": "Format output as json.",
1637
+ "helpGroup": "GLOBAL",
1638
+ "name": "json",
1639
+ "allowNo": false,
1640
+ "type": "boolean"
1641
+ },
1642
+ "project": {
1643
+ "char": "p",
1644
+ "description": "Project id (UUID) or key",
1645
+ "name": "project",
1646
+ "required": true,
1647
+ "hasDynamicHelp": false,
1648
+ "multiple": false,
1649
+ "type": "option"
1650
+ }
1651
+ },
1652
+ "hasDynamicHelp": false,
1653
+ "hiddenAliases": [],
1654
+ "id": "metrics:promote",
1655
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1656
+ "pluginName": "@bussolabs/closeyourit-cli",
1657
+ "pluginType": "core",
1658
+ "strict": true,
1659
+ "enableJsonFlag": true,
1660
+ "isESM": false,
1661
+ "relativePath": [
1662
+ "dist",
1663
+ "commands",
1664
+ "metrics",
1665
+ "promote.js"
1666
+ ]
1667
+ },
1668
+ "metrics:show": {
1669
+ "aliases": [],
1670
+ "args": {
1671
+ "id": {
1672
+ "description": "Metric group id",
1673
+ "name": "id",
1674
+ "required": true
1675
+ }
1676
+ },
1677
+ "description": "Show a single metric group",
1678
+ "examples": [
1679
+ "<%= config.bin %> metrics show <group-id> --project acme-api"
1680
+ ],
1681
+ "flags": {
1682
+ "json": {
1683
+ "description": "Format output as json.",
1684
+ "helpGroup": "GLOBAL",
1685
+ "name": "json",
1686
+ "allowNo": false,
1687
+ "type": "boolean"
1688
+ },
1689
+ "project": {
1690
+ "char": "p",
1691
+ "description": "Project id (UUID) or key",
1692
+ "name": "project",
1693
+ "required": true,
1694
+ "hasDynamicHelp": false,
1695
+ "multiple": false,
1696
+ "type": "option"
1697
+ }
1698
+ },
1699
+ "hasDynamicHelp": false,
1700
+ "hiddenAliases": [],
1701
+ "id": "metrics:show",
1702
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1703
+ "pluginName": "@bussolabs/closeyourit-cli",
1704
+ "pluginType": "core",
1705
+ "strict": true,
1706
+ "enableJsonFlag": true,
1707
+ "isESM": false,
1708
+ "relativePath": [
1709
+ "dist",
1710
+ "commands",
1711
+ "metrics",
1712
+ "show.js"
1713
+ ]
1714
+ },
1715
+ "milestones:create": {
1716
+ "aliases": [],
1717
+ "args": {},
1718
+ "description": "Create a milestone for a project",
1719
+ "examples": [
1720
+ "<%= config.bin %> milestones create --project acme-api --code v1 --label \"Version 1.0\"",
1721
+ "<%= config.bin %> milestones create -p acme-api --code v1 --label \"Version 1.0\" --due-on 2026-12-31"
1722
+ ],
1723
+ "flags": {
1724
+ "json": {
1725
+ "description": "Format output as json.",
1726
+ "helpGroup": "GLOBAL",
1727
+ "name": "json",
1728
+ "allowNo": false,
1729
+ "type": "boolean"
1730
+ },
1731
+ "project": {
1732
+ "char": "p",
1733
+ "description": "Project id (UUID) or key",
1734
+ "name": "project",
1735
+ "required": true,
1736
+ "hasDynamicHelp": false,
1737
+ "multiple": false,
1738
+ "type": "option"
1739
+ },
1740
+ "code": {
1741
+ "description": "Milestone code (short identifier)",
1742
+ "name": "code",
1743
+ "required": true,
1744
+ "hasDynamicHelp": false,
1745
+ "multiple": false,
1746
+ "type": "option"
1747
+ },
1748
+ "label": {
1749
+ "description": "Human-readable label",
1750
+ "name": "label",
1751
+ "required": true,
1752
+ "hasDynamicHelp": false,
1753
+ "multiple": false,
1754
+ "type": "option"
1755
+ },
1756
+ "color": {
1757
+ "description": "Color label",
1758
+ "name": "color",
1759
+ "hasDynamicHelp": false,
1760
+ "multiple": false,
1761
+ "type": "option"
1762
+ },
1763
+ "due-on": {
1764
+ "description": "Due date (YYYY-MM-DD)",
1765
+ "name": "due-on",
1766
+ "hasDynamicHelp": false,
1767
+ "multiple": false,
1768
+ "type": "option"
1769
+ },
1770
+ "active": {
1771
+ "description": "Whether the milestone is active",
1772
+ "name": "active",
1773
+ "allowNo": true,
1774
+ "type": "boolean"
1775
+ }
1776
+ },
1777
+ "hasDynamicHelp": false,
1778
+ "hiddenAliases": [],
1779
+ "id": "milestones:create",
1780
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1781
+ "pluginName": "@bussolabs/closeyourit-cli",
1782
+ "pluginType": "core",
1783
+ "strict": true,
1784
+ "enableJsonFlag": true,
1785
+ "isESM": false,
1786
+ "relativePath": [
1787
+ "dist",
1788
+ "commands",
1789
+ "milestones",
1790
+ "create.js"
1791
+ ]
1792
+ },
1793
+ "milestones:delete": {
1794
+ "aliases": [],
1795
+ "args": {
1796
+ "id": {
1797
+ "description": "Milestone id",
1798
+ "name": "id",
1799
+ "required": true
1800
+ }
1801
+ },
1802
+ "description": "Delete a milestone (irreversible)",
1803
+ "examples": [
1804
+ "<%= config.bin %> milestones delete <milestone-id> --project acme-api --confirm"
1805
+ ],
1806
+ "flags": {
1807
+ "json": {
1808
+ "description": "Format output as json.",
1809
+ "helpGroup": "GLOBAL",
1810
+ "name": "json",
1811
+ "allowNo": false,
1812
+ "type": "boolean"
1813
+ },
1814
+ "project": {
1815
+ "char": "p",
1816
+ "description": "Project id (UUID) or key",
1817
+ "name": "project",
1818
+ "required": true,
1819
+ "hasDynamicHelp": false,
1820
+ "multiple": false,
1821
+ "type": "option"
1822
+ },
1823
+ "confirm": {
1824
+ "description": "Required: confirm the deletion",
1825
+ "name": "confirm",
1826
+ "allowNo": false,
1827
+ "type": "boolean"
1828
+ }
1829
+ },
1830
+ "hasDynamicHelp": false,
1831
+ "hiddenAliases": [],
1832
+ "id": "milestones:delete",
1833
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1834
+ "pluginName": "@bussolabs/closeyourit-cli",
1835
+ "pluginType": "core",
1836
+ "strict": true,
1837
+ "enableJsonFlag": true,
1838
+ "isESM": false,
1839
+ "relativePath": [
1840
+ "dist",
1841
+ "commands",
1842
+ "milestones",
1843
+ "delete.js"
1844
+ ]
1845
+ },
1846
+ "milestones:list": {
1847
+ "aliases": [],
1848
+ "args": {},
1849
+ "description": "List the milestones for a project",
1850
+ "examples": [
1851
+ "<%= config.bin %> milestones list --project acme-api",
1852
+ "<%= config.bin %> milestones list -p acme-api --json"
1853
+ ],
1854
+ "flags": {
1855
+ "json": {
1856
+ "description": "Format output as json.",
1857
+ "helpGroup": "GLOBAL",
1858
+ "name": "json",
1859
+ "allowNo": false,
1860
+ "type": "boolean"
1861
+ },
1862
+ "project": {
1863
+ "char": "p",
1864
+ "description": "Project id (UUID) or key",
1865
+ "name": "project",
1866
+ "required": true,
1867
+ "hasDynamicHelp": false,
1868
+ "multiple": false,
1869
+ "type": "option"
1870
+ },
1871
+ "page": {
1872
+ "description": "Page number",
1873
+ "name": "page",
1874
+ "default": 1,
1875
+ "hasDynamicHelp": false,
1876
+ "multiple": false,
1877
+ "type": "option"
1878
+ }
1879
+ },
1880
+ "hasDynamicHelp": false,
1881
+ "hiddenAliases": [],
1882
+ "id": "milestones:list",
1883
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1884
+ "pluginName": "@bussolabs/closeyourit-cli",
1885
+ "pluginType": "core",
1886
+ "strict": true,
1887
+ "enableJsonFlag": true,
1888
+ "isESM": false,
1889
+ "relativePath": [
1890
+ "dist",
1891
+ "commands",
1892
+ "milestones",
1893
+ "list.js"
1894
+ ]
1895
+ },
1896
+ "milestones:show": {
1897
+ "aliases": [],
1898
+ "args": {
1899
+ "id": {
1900
+ "description": "Milestone id",
1901
+ "name": "id",
1902
+ "required": true
1903
+ }
1904
+ },
1905
+ "description": "Show a single milestone",
1906
+ "examples": [
1907
+ "<%= config.bin %> milestones show <milestone-id> --project acme-api"
1908
+ ],
1909
+ "flags": {
1910
+ "json": {
1911
+ "description": "Format output as json.",
1912
+ "helpGroup": "GLOBAL",
1913
+ "name": "json",
1914
+ "allowNo": false,
1915
+ "type": "boolean"
1916
+ },
1917
+ "project": {
1918
+ "char": "p",
1919
+ "description": "Project id (UUID) or key",
1920
+ "name": "project",
1921
+ "required": true,
1922
+ "hasDynamicHelp": false,
1923
+ "multiple": false,
1924
+ "type": "option"
1925
+ }
1926
+ },
1927
+ "hasDynamicHelp": false,
1928
+ "hiddenAliases": [],
1929
+ "id": "milestones:show",
1930
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1931
+ "pluginName": "@bussolabs/closeyourit-cli",
1932
+ "pluginType": "core",
1933
+ "strict": true,
1934
+ "enableJsonFlag": true,
1935
+ "isESM": false,
1936
+ "relativePath": [
1937
+ "dist",
1938
+ "commands",
1939
+ "milestones",
1940
+ "show.js"
1941
+ ]
1942
+ },
1943
+ "milestones:update": {
1944
+ "aliases": [],
1945
+ "args": {
1946
+ "id": {
1947
+ "description": "Milestone id",
1948
+ "name": "id",
1949
+ "required": true
1950
+ }
1951
+ },
1952
+ "description": "Update a milestone (send only the fields you want to change)",
1953
+ "examples": [
1954
+ "<%= config.bin %> milestones update <milestone-id> --project acme-api --label \"Version 1.1\"",
1955
+ "<%= config.bin %> milestones update <milestone-id> -p acme-api --due-on 2027-01-15 --no-active"
1956
+ ],
1957
+ "flags": {
1958
+ "json": {
1959
+ "description": "Format output as json.",
1960
+ "helpGroup": "GLOBAL",
1961
+ "name": "json",
1962
+ "allowNo": false,
1963
+ "type": "boolean"
1964
+ },
1965
+ "project": {
1966
+ "char": "p",
1967
+ "description": "Project id (UUID) or key",
1968
+ "name": "project",
1969
+ "required": true,
1970
+ "hasDynamicHelp": false,
1971
+ "multiple": false,
1972
+ "type": "option"
1973
+ },
1974
+ "code": {
1975
+ "description": "Milestone code (short identifier)",
1976
+ "name": "code",
1977
+ "hasDynamicHelp": false,
1978
+ "multiple": false,
1979
+ "type": "option"
1980
+ },
1981
+ "label": {
1982
+ "description": "Human-readable label",
1983
+ "name": "label",
1984
+ "hasDynamicHelp": false,
1985
+ "multiple": false,
1986
+ "type": "option"
1987
+ },
1988
+ "color": {
1989
+ "description": "Color label",
1990
+ "name": "color",
1991
+ "hasDynamicHelp": false,
1992
+ "multiple": false,
1993
+ "type": "option"
1994
+ },
1995
+ "due-on": {
1996
+ "description": "Due date (YYYY-MM-DD)",
1997
+ "name": "due-on",
1998
+ "hasDynamicHelp": false,
1999
+ "multiple": false,
2000
+ "type": "option"
2001
+ },
2002
+ "active": {
2003
+ "description": "Whether the milestone is active",
2004
+ "name": "active",
2005
+ "allowNo": true,
2006
+ "type": "boolean"
2007
+ }
2008
+ },
2009
+ "hasDynamicHelp": false,
2010
+ "hiddenAliases": [],
2011
+ "id": "milestones:update",
2012
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2013
+ "pluginName": "@bussolabs/closeyourit-cli",
2014
+ "pluginType": "core",
2015
+ "strict": true,
2016
+ "enableJsonFlag": true,
2017
+ "isESM": false,
2018
+ "relativePath": [
2019
+ "dist",
2020
+ "commands",
2021
+ "milestones",
2022
+ "update.js"
2023
+ ]
2024
+ },
2025
+ "monitors:create": {
2026
+ "aliases": [],
2027
+ "args": {},
2028
+ "description": "Create an uptime monitor for a project (one per environment)",
2029
+ "examples": [
2030
+ "<%= config.bin %> monitors create --project acme-api --url https://acme.example.com/up",
2031
+ "<%= config.bin %> monitors create -p acme-api --url https://acme.example.com/up --environment <env-id> --interval-seconds 60 --expected-status 200"
2032
+ ],
2033
+ "flags": {
2034
+ "json": {
2035
+ "description": "Format output as json.",
2036
+ "helpGroup": "GLOBAL",
2037
+ "name": "json",
2038
+ "allowNo": false,
2039
+ "type": "boolean"
2040
+ },
2041
+ "project": {
2042
+ "char": "p",
2043
+ "description": "Project id (UUID) or key",
2044
+ "name": "project",
2045
+ "required": true,
2046
+ "hasDynamicHelp": false,
2047
+ "multiple": false,
2048
+ "type": "option"
2049
+ },
2050
+ "url": {
2051
+ "description": "URL to probe",
2052
+ "name": "url",
2053
+ "required": true,
2054
+ "hasDynamicHelp": false,
2055
+ "multiple": false,
2056
+ "type": "option"
2057
+ },
2058
+ "environment": {
2059
+ "description": "Environment id (must be declared by the project)",
2060
+ "name": "environment",
2061
+ "hasDynamicHelp": false,
2062
+ "multiple": false,
2063
+ "type": "option"
2064
+ },
2065
+ "http-method": {
2066
+ "description": "HTTP method (default GET)",
2067
+ "name": "http-method",
2068
+ "hasDynamicHelp": false,
2069
+ "multiple": false,
2070
+ "type": "option"
2071
+ },
2072
+ "interval-seconds": {
2073
+ "description": "Seconds between checks",
2074
+ "name": "interval-seconds",
2075
+ "hasDynamicHelp": false,
2076
+ "multiple": false,
2077
+ "type": "option"
2078
+ },
2079
+ "expected-status": {
2080
+ "description": "Expected HTTP status code",
2081
+ "name": "expected-status",
2082
+ "hasDynamicHelp": false,
2083
+ "multiple": false,
2084
+ "type": "option"
2085
+ },
2086
+ "timeout-seconds": {
2087
+ "description": "Request timeout in seconds",
2088
+ "name": "timeout-seconds",
2089
+ "hasDynamicHelp": false,
2090
+ "multiple": false,
2091
+ "type": "option"
2092
+ }
2093
+ },
2094
+ "hasDynamicHelp": false,
2095
+ "hiddenAliases": [],
2096
+ "id": "monitors:create",
2097
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2098
+ "pluginName": "@bussolabs/closeyourit-cli",
2099
+ "pluginType": "core",
2100
+ "strict": true,
2101
+ "enableJsonFlag": true,
2102
+ "isESM": false,
2103
+ "relativePath": [
2104
+ "dist",
2105
+ "commands",
2106
+ "monitors",
2107
+ "create.js"
2108
+ ]
2109
+ },
2110
+ "monitors:delete": {
2111
+ "aliases": [],
2112
+ "args": {
2113
+ "id": {
2114
+ "description": "Monitor id",
2115
+ "name": "id",
2116
+ "required": true
2117
+ }
2118
+ },
2119
+ "description": "Delete an uptime monitor (irreversible)",
2120
+ "examples": [
2121
+ "<%= config.bin %> monitors delete <monitor-id> --project acme-api --confirm"
2122
+ ],
2123
+ "flags": {
2124
+ "json": {
2125
+ "description": "Format output as json.",
2126
+ "helpGroup": "GLOBAL",
2127
+ "name": "json",
2128
+ "allowNo": false,
2129
+ "type": "boolean"
2130
+ },
2131
+ "project": {
2132
+ "char": "p",
2133
+ "description": "Project id (UUID) or key",
2134
+ "name": "project",
2135
+ "required": true,
2136
+ "hasDynamicHelp": false,
2137
+ "multiple": false,
2138
+ "type": "option"
2139
+ },
2140
+ "confirm": {
2141
+ "description": "Required: confirm the deletion",
2142
+ "name": "confirm",
2143
+ "allowNo": false,
2144
+ "type": "boolean"
2145
+ }
2146
+ },
2147
+ "hasDynamicHelp": false,
2148
+ "hiddenAliases": [],
2149
+ "id": "monitors:delete",
2150
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2151
+ "pluginName": "@bussolabs/closeyourit-cli",
2152
+ "pluginType": "core",
2153
+ "strict": true,
2154
+ "enableJsonFlag": true,
2155
+ "isESM": false,
2156
+ "relativePath": [
2157
+ "dist",
2158
+ "commands",
2159
+ "monitors",
2160
+ "delete.js"
2161
+ ]
2162
+ },
2163
+ "monitors:list": {
2164
+ "aliases": [],
2165
+ "args": {},
2166
+ "description": "List the uptime monitors for a project",
2167
+ "examples": [
2168
+ "<%= config.bin %> monitors list --project acme-api",
2169
+ "<%= config.bin %> monitors list -p acme-api --json"
2170
+ ],
2171
+ "flags": {
2172
+ "json": {
2173
+ "description": "Format output as json.",
2174
+ "helpGroup": "GLOBAL",
2175
+ "name": "json",
2176
+ "allowNo": false,
2177
+ "type": "boolean"
2178
+ },
2179
+ "project": {
2180
+ "char": "p",
2181
+ "description": "Project id (UUID) or key",
2182
+ "name": "project",
2183
+ "required": true,
2184
+ "hasDynamicHelp": false,
2185
+ "multiple": false,
2186
+ "type": "option"
2187
+ },
2188
+ "page": {
2189
+ "description": "Page number",
2190
+ "name": "page",
2191
+ "default": 1,
2192
+ "hasDynamicHelp": false,
2193
+ "multiple": false,
2194
+ "type": "option"
2195
+ }
2196
+ },
2197
+ "hasDynamicHelp": false,
2198
+ "hiddenAliases": [],
2199
+ "id": "monitors:list",
2200
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2201
+ "pluginName": "@bussolabs/closeyourit-cli",
2202
+ "pluginType": "core",
2203
+ "strict": true,
2204
+ "enableJsonFlag": true,
2205
+ "isESM": false,
2206
+ "relativePath": [
2207
+ "dist",
2208
+ "commands",
2209
+ "monitors",
2210
+ "list.js"
2211
+ ]
2212
+ },
2213
+ "monitors:pause": {
2214
+ "aliases": [],
2215
+ "args": {
2216
+ "id": {
2217
+ "description": "Monitor id",
2218
+ "name": "id",
2219
+ "required": true
2220
+ }
2221
+ },
2222
+ "description": "Pause an uptime monitor (stops scheduling checks)",
2223
+ "examples": [
2224
+ "<%= config.bin %> monitors pause <monitor-id> --project acme-api"
2225
+ ],
2226
+ "flags": {
2227
+ "json": {
2228
+ "description": "Format output as json.",
2229
+ "helpGroup": "GLOBAL",
2230
+ "name": "json",
2231
+ "allowNo": false,
2232
+ "type": "boolean"
2233
+ },
2234
+ "project": {
2235
+ "char": "p",
2236
+ "description": "Project id (UUID) or key",
2237
+ "name": "project",
2238
+ "required": true,
2239
+ "hasDynamicHelp": false,
2240
+ "multiple": false,
2241
+ "type": "option"
2242
+ }
2243
+ },
2244
+ "hasDynamicHelp": false,
2245
+ "hiddenAliases": [],
2246
+ "id": "monitors:pause",
2247
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2248
+ "pluginName": "@bussolabs/closeyourit-cli",
2249
+ "pluginType": "core",
2250
+ "strict": true,
2251
+ "enableJsonFlag": true,
2252
+ "isESM": false,
2253
+ "relativePath": [
2254
+ "dist",
2255
+ "commands",
2256
+ "monitors",
2257
+ "pause.js"
2258
+ ]
2259
+ },
2260
+ "monitors:resume": {
2261
+ "aliases": [],
2262
+ "args": {
2263
+ "id": {
2264
+ "description": "Monitor id",
2265
+ "name": "id",
2266
+ "required": true
2267
+ }
2268
+ },
2269
+ "description": "Resume a paused uptime monitor (re-enables scheduling)",
2270
+ "examples": [
2271
+ "<%= config.bin %> monitors resume <monitor-id> --project acme-api"
2272
+ ],
2273
+ "flags": {
2274
+ "json": {
2275
+ "description": "Format output as json.",
2276
+ "helpGroup": "GLOBAL",
2277
+ "name": "json",
2278
+ "allowNo": false,
2279
+ "type": "boolean"
2280
+ },
2281
+ "project": {
2282
+ "char": "p",
2283
+ "description": "Project id (UUID) or key",
2284
+ "name": "project",
2285
+ "required": true,
2286
+ "hasDynamicHelp": false,
2287
+ "multiple": false,
2288
+ "type": "option"
2289
+ }
2290
+ },
2291
+ "hasDynamicHelp": false,
2292
+ "hiddenAliases": [],
2293
+ "id": "monitors:resume",
2294
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2295
+ "pluginName": "@bussolabs/closeyourit-cli",
2296
+ "pluginType": "core",
2297
+ "strict": true,
2298
+ "enableJsonFlag": true,
2299
+ "isESM": false,
2300
+ "relativePath": [
2301
+ "dist",
2302
+ "commands",
2303
+ "monitors",
2304
+ "resume.js"
2305
+ ]
2306
+ },
2307
+ "monitors:show": {
2308
+ "aliases": [],
2309
+ "args": {
2310
+ "id": {
2311
+ "description": "Monitor id",
2312
+ "name": "id",
2313
+ "required": true
2314
+ }
2315
+ },
2316
+ "description": "Show a single uptime monitor",
2317
+ "examples": [
2318
+ "<%= config.bin %> monitors show <monitor-id> --project acme-api"
2319
+ ],
2320
+ "flags": {
2321
+ "json": {
2322
+ "description": "Format output as json.",
2323
+ "helpGroup": "GLOBAL",
2324
+ "name": "json",
2325
+ "allowNo": false,
2326
+ "type": "boolean"
2327
+ },
2328
+ "project": {
2329
+ "char": "p",
2330
+ "description": "Project id (UUID) or key",
2331
+ "name": "project",
2332
+ "required": true,
2333
+ "hasDynamicHelp": false,
2334
+ "multiple": false,
2335
+ "type": "option"
2336
+ }
2337
+ },
2338
+ "hasDynamicHelp": false,
2339
+ "hiddenAliases": [],
2340
+ "id": "monitors:show",
2341
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2342
+ "pluginName": "@bussolabs/closeyourit-cli",
2343
+ "pluginType": "core",
2344
+ "strict": true,
2345
+ "enableJsonFlag": true,
2346
+ "isESM": false,
2347
+ "relativePath": [
2348
+ "dist",
2349
+ "commands",
2350
+ "monitors",
2351
+ "show.js"
2352
+ ]
2353
+ },
2354
+ "monitors:update": {
2355
+ "aliases": [],
2356
+ "args": {
2357
+ "id": {
2358
+ "description": "Monitor id",
2359
+ "name": "id",
2360
+ "required": true
2361
+ }
2362
+ },
2363
+ "description": "Update an uptime monitor (URL, method, interval, expected status, timeout)",
2364
+ "examples": [
2365
+ "<%= config.bin %> monitors update <monitor-id> --project acme-api --interval-seconds 120",
2366
+ "<%= config.bin %> monitors update <monitor-id> -p acme-api --url https://acme.example.com/health --expected-status 204"
2367
+ ],
2368
+ "flags": {
2369
+ "json": {
2370
+ "description": "Format output as json.",
2371
+ "helpGroup": "GLOBAL",
2372
+ "name": "json",
2373
+ "allowNo": false,
2374
+ "type": "boolean"
2375
+ },
2376
+ "project": {
2377
+ "char": "p",
2378
+ "description": "Project id (UUID) or key",
2379
+ "name": "project",
2380
+ "required": true,
2381
+ "hasDynamicHelp": false,
2382
+ "multiple": false,
2383
+ "type": "option"
2384
+ },
2385
+ "url": {
2386
+ "description": "URL to probe",
2387
+ "name": "url",
2388
+ "hasDynamicHelp": false,
2389
+ "multiple": false,
2390
+ "type": "option"
2391
+ },
2392
+ "http-method": {
2393
+ "description": "HTTP method",
2394
+ "name": "http-method",
2395
+ "hasDynamicHelp": false,
2396
+ "multiple": false,
2397
+ "type": "option"
2398
+ },
2399
+ "interval-seconds": {
2400
+ "description": "Seconds between checks",
2401
+ "name": "interval-seconds",
2402
+ "hasDynamicHelp": false,
2403
+ "multiple": false,
2404
+ "type": "option"
2405
+ },
2406
+ "expected-status": {
2407
+ "description": "Expected HTTP status code",
2408
+ "name": "expected-status",
2409
+ "hasDynamicHelp": false,
2410
+ "multiple": false,
2411
+ "type": "option"
2412
+ },
2413
+ "timeout-seconds": {
2414
+ "description": "Request timeout in seconds",
2415
+ "name": "timeout-seconds",
2416
+ "hasDynamicHelp": false,
2417
+ "multiple": false,
2418
+ "type": "option"
2419
+ }
2420
+ },
2421
+ "hasDynamicHelp": false,
2422
+ "hiddenAliases": [],
2423
+ "id": "monitors:update",
2424
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2425
+ "pluginName": "@bussolabs/closeyourit-cli",
2426
+ "pluginType": "core",
2427
+ "strict": true,
2428
+ "enableJsonFlag": true,
2429
+ "isESM": false,
2430
+ "relativePath": [
2431
+ "dist",
2432
+ "commands",
2433
+ "monitors",
2434
+ "update.js"
2435
+ ]
2436
+ },
2437
+ "org:show": {
2438
+ "aliases": [],
2439
+ "args": {},
2440
+ "description": "Show your organization settings",
2441
+ "examples": [
2442
+ "<%= config.bin %> org show",
2443
+ "<%= config.bin %> org show --json"
2444
+ ],
2445
+ "flags": {
2446
+ "json": {
2447
+ "description": "Format output as json.",
2448
+ "helpGroup": "GLOBAL",
2449
+ "name": "json",
2450
+ "allowNo": false,
2451
+ "type": "boolean"
2452
+ }
2453
+ },
2454
+ "hasDynamicHelp": false,
2455
+ "hiddenAliases": [],
2456
+ "id": "org:show",
2457
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2458
+ "pluginName": "@bussolabs/closeyourit-cli",
2459
+ "pluginType": "core",
2460
+ "strict": true,
2461
+ "enableJsonFlag": true,
2462
+ "isESM": false,
2463
+ "relativePath": [
2464
+ "dist",
2465
+ "commands",
2466
+ "org",
2467
+ "show.js"
2468
+ ]
2469
+ },
2470
+ "org:update": {
2471
+ "aliases": [],
2472
+ "args": {},
2473
+ "description": "Update your organization settings (requires organization.manage)",
2474
+ "examples": [
2475
+ "<%= config.bin %> org update --name \"Acme Inc\"",
2476
+ "<%= config.bin %> org update --slug acme-inc",
2477
+ "<%= config.bin %> org update --projects-view table"
2478
+ ],
2479
+ "flags": {
2480
+ "json": {
2481
+ "description": "Format output as json.",
2482
+ "helpGroup": "GLOBAL",
2483
+ "name": "json",
2484
+ "allowNo": false,
2485
+ "type": "boolean"
2486
+ },
2487
+ "name": {
2488
+ "description": "New organization name",
2489
+ "name": "name",
2490
+ "hasDynamicHelp": false,
2491
+ "multiple": false,
2492
+ "type": "option"
2493
+ },
2494
+ "slug": {
2495
+ "description": "New organization slug (lowercase, a-z 0-9 and hyphens)",
2496
+ "name": "slug",
2497
+ "hasDynamicHelp": false,
2498
+ "multiple": false,
2499
+ "type": "option"
2500
+ },
2501
+ "projects-view": {
2502
+ "description": "Default projects list view",
2503
+ "name": "projects-view",
2504
+ "hasDynamicHelp": false,
2505
+ "multiple": false,
2506
+ "options": [
2507
+ "cards",
2508
+ "table"
2509
+ ],
2510
+ "type": "option"
2511
+ }
2512
+ },
2513
+ "hasDynamicHelp": false,
2514
+ "hiddenAliases": [],
2515
+ "id": "org:update",
2516
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2517
+ "pluginName": "@bussolabs/closeyourit-cli",
2518
+ "pluginType": "core",
2519
+ "strict": true,
2520
+ "enableJsonFlag": true,
2521
+ "isESM": false,
2522
+ "relativePath": [
2523
+ "dist",
2524
+ "commands",
2525
+ "org",
2526
+ "update.js"
2527
+ ]
2528
+ },
2529
+ "platforms:create": {
2530
+ "aliases": [],
2531
+ "args": {
2532
+ "code": {
2533
+ "description": "Platform code (e.g. \"ios\", \"android\", \"web\")",
2534
+ "name": "code",
2535
+ "required": true
2536
+ }
2537
+ },
2538
+ "description": "Create a platform (a device/system your projects run on)",
2539
+ "examples": [
2540
+ "<%= config.bin %> platforms create ios --label iOS",
2541
+ "<%= config.bin %> platforms create android --label Android --color emerald --position 2"
2542
+ ],
2543
+ "flags": {
2544
+ "json": {
2545
+ "description": "Format output as json.",
2546
+ "helpGroup": "GLOBAL",
2547
+ "name": "json",
2548
+ "allowNo": false,
2549
+ "type": "boolean"
2550
+ },
2551
+ "label": {
2552
+ "description": "Human-readable label",
2553
+ "name": "label",
2554
+ "required": true,
2555
+ "hasDynamicHelp": false,
2556
+ "multiple": false,
2557
+ "type": "option"
2558
+ },
2559
+ "color": {
2560
+ "description": "Color label",
2561
+ "name": "color",
2562
+ "default": "sky",
2563
+ "hasDynamicHelp": false,
2564
+ "multiple": false,
2565
+ "type": "option"
2566
+ },
2567
+ "position": {
2568
+ "description": "Sort position",
2569
+ "name": "position",
2570
+ "hasDynamicHelp": false,
2571
+ "multiple": false,
2572
+ "type": "option"
2573
+ },
2574
+ "active": {
2575
+ "description": "Whether the platform is active",
2576
+ "name": "active",
2577
+ "allowNo": true,
2578
+ "type": "boolean"
2579
+ }
2580
+ },
2581
+ "hasDynamicHelp": false,
2582
+ "hiddenAliases": [],
2583
+ "id": "platforms:create",
2584
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2585
+ "pluginName": "@bussolabs/closeyourit-cli",
2586
+ "pluginType": "core",
2587
+ "strict": true,
2588
+ "enableJsonFlag": true,
2589
+ "isESM": false,
2590
+ "relativePath": [
2591
+ "dist",
2592
+ "commands",
2593
+ "platforms",
2594
+ "create.js"
2595
+ ]
2596
+ },
2597
+ "platforms:delete": {
2598
+ "aliases": [],
2599
+ "args": {
2600
+ "platform": {
2601
+ "description": "Platform id (UUID) or code",
2602
+ "name": "platform",
2603
+ "required": true
2604
+ }
2605
+ },
2606
+ "description": "Delete a platform (blocked if any project or ticket still references it)",
2607
+ "examples": [
2608
+ "<%= config.bin %> platforms delete legacy --confirm"
2609
+ ],
2610
+ "flags": {
2611
+ "json": {
2612
+ "description": "Format output as json.",
2613
+ "helpGroup": "GLOBAL",
2614
+ "name": "json",
2615
+ "allowNo": false,
2616
+ "type": "boolean"
2617
+ },
2618
+ "confirm": {
2619
+ "description": "Required: confirm the deletion",
2620
+ "name": "confirm",
2621
+ "allowNo": false,
2622
+ "type": "boolean"
2623
+ }
2624
+ },
2625
+ "hasDynamicHelp": false,
2626
+ "hiddenAliases": [],
2627
+ "id": "platforms:delete",
2628
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2629
+ "pluginName": "@bussolabs/closeyourit-cli",
2630
+ "pluginType": "core",
2631
+ "strict": true,
2632
+ "enableJsonFlag": true,
2633
+ "isESM": false,
2634
+ "relativePath": [
2635
+ "dist",
2636
+ "commands",
2637
+ "platforms",
2638
+ "delete.js"
2639
+ ]
2640
+ },
2641
+ "platforms:list": {
2642
+ "aliases": [],
2643
+ "args": {},
2644
+ "description": "List the platforms (devices/systems) in your organization",
2645
+ "examples": [
2646
+ "<%= config.bin %> platforms list",
2647
+ "<%= config.bin %> platforms list --page 2 --json"
2648
+ ],
2649
+ "flags": {
2650
+ "json": {
2651
+ "description": "Format output as json.",
2652
+ "helpGroup": "GLOBAL",
2653
+ "name": "json",
2654
+ "allowNo": false,
2655
+ "type": "boolean"
2656
+ },
2657
+ "page": {
2658
+ "description": "Page number",
2659
+ "name": "page",
2660
+ "default": 1,
2661
+ "hasDynamicHelp": false,
2662
+ "multiple": false,
2663
+ "type": "option"
2664
+ }
2665
+ },
2666
+ "hasDynamicHelp": false,
2667
+ "hiddenAliases": [],
2668
+ "id": "platforms:list",
2669
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2670
+ "pluginName": "@bussolabs/closeyourit-cli",
2671
+ "pluginType": "core",
2672
+ "strict": true,
2673
+ "enableJsonFlag": true,
2674
+ "isESM": false,
2675
+ "relativePath": [
2676
+ "dist",
2677
+ "commands",
2678
+ "platforms",
2679
+ "list.js"
2680
+ ]
2681
+ },
2682
+ "platforms:update": {
2683
+ "aliases": [],
2684
+ "args": {
2685
+ "platform": {
2686
+ "description": "Platform id (UUID) or code",
2687
+ "name": "platform",
2688
+ "required": true
2689
+ }
2690
+ },
2691
+ "description": "Update a platform (relabel, recolor, reorder, activate/deactivate)",
2692
+ "examples": [
2693
+ "<%= config.bin %> platforms update ios --label \"iOS / iPadOS\"",
2694
+ "<%= config.bin %> platforms update web --color indigo --position 1",
2695
+ "<%= config.bin %> platforms update legacy --no-active"
2696
+ ],
2697
+ "flags": {
2698
+ "json": {
2699
+ "description": "Format output as json.",
2700
+ "helpGroup": "GLOBAL",
2701
+ "name": "json",
2702
+ "allowNo": false,
2703
+ "type": "boolean"
2704
+ },
2705
+ "code": {
2706
+ "description": "New code",
2707
+ "name": "code",
2708
+ "hasDynamicHelp": false,
2709
+ "multiple": false,
2710
+ "type": "option"
2711
+ },
2712
+ "label": {
2713
+ "description": "New label",
2714
+ "name": "label",
2715
+ "hasDynamicHelp": false,
2716
+ "multiple": false,
2717
+ "type": "option"
2718
+ },
2719
+ "color": {
2720
+ "description": "Color label",
2721
+ "name": "color",
2722
+ "hasDynamicHelp": false,
2723
+ "multiple": false,
2724
+ "type": "option"
2725
+ },
2726
+ "position": {
2727
+ "description": "Sort position",
2728
+ "name": "position",
2729
+ "hasDynamicHelp": false,
2730
+ "multiple": false,
2731
+ "type": "option"
2732
+ },
2733
+ "active": {
2734
+ "description": "Whether the platform is active",
2735
+ "name": "active",
2736
+ "allowNo": true,
2737
+ "type": "boolean"
2738
+ }
2739
+ },
2740
+ "hasDynamicHelp": false,
2741
+ "hiddenAliases": [],
2742
+ "id": "platforms:update",
2743
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2744
+ "pluginName": "@bussolabs/closeyourit-cli",
2745
+ "pluginType": "core",
2746
+ "strict": true,
2747
+ "enableJsonFlag": true,
2748
+ "isESM": false,
2749
+ "relativePath": [
2750
+ "dist",
2751
+ "commands",
2752
+ "platforms",
2753
+ "update.js"
2754
+ ]
2755
+ },
2756
+ "projects:create": {
2757
+ "aliases": [],
2758
+ "args": {
2759
+ "name": {
2760
+ "description": "Project name",
2761
+ "name": "name",
2762
+ "required": true
2763
+ }
2764
+ },
2765
+ "description": "Create a project (optionally inside a group)",
2766
+ "examples": [
2767
+ "<%= config.bin %> projects create driverone-rails --key DRRA",
2768
+ "<%= config.bin %> projects create driverone-rails --group DriverOne --key DRRA",
2769
+ "<%= config.bin %> projects create driverone-flutter -g <group-uuid> -k DRFL"
2770
+ ],
2771
+ "flags": {
2772
+ "json": {
2773
+ "description": "Format output as json.",
2774
+ "helpGroup": "GLOBAL",
2775
+ "name": "json",
2776
+ "allowNo": false,
2777
+ "type": "boolean"
2778
+ },
2779
+ "color": {
2780
+ "description": "Color label",
2781
+ "name": "color",
2782
+ "hasDynamicHelp": false,
2783
+ "multiple": false,
2784
+ "type": "option"
2785
+ },
2786
+ "description": {
2787
+ "description": "Free-form description",
2788
+ "name": "description",
2789
+ "hasDynamicHelp": false,
2790
+ "multiple": false,
2791
+ "type": "option"
2792
+ },
2793
+ "group": {
2794
+ "char": "g",
2795
+ "description": "Group id (UUID) or name to place the project in",
2796
+ "name": "group",
2797
+ "hasDynamicHelp": false,
2798
+ "multiple": false,
2799
+ "type": "option"
2800
+ },
2801
+ "key": {
2802
+ "char": "k",
2803
+ "description": "Project key (uppercase A-Z0-9, max 4 chars, unique per org)",
2804
+ "name": "key",
2805
+ "required": true,
2806
+ "hasDynamicHelp": false,
2807
+ "multiple": false,
2808
+ "type": "option"
2809
+ }
2810
+ },
2811
+ "hasDynamicHelp": false,
2812
+ "hiddenAliases": [],
2813
+ "id": "projects:create",
2814
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2815
+ "pluginName": "@bussolabs/closeyourit-cli",
2816
+ "pluginType": "core",
2817
+ "strict": true,
2818
+ "enableJsonFlag": true,
2819
+ "isESM": false,
2820
+ "relativePath": [
2821
+ "dist",
2822
+ "commands",
2823
+ "projects",
2824
+ "create.js"
2825
+ ]
2826
+ },
2827
+ "projects:delete": {
2828
+ "aliases": [],
2829
+ "args": {},
2830
+ "description": "Delete a project (irreversible)",
2831
+ "examples": [
2832
+ "<%= config.bin %> projects delete --project LBRA --confirm"
2833
+ ],
2834
+ "flags": {
2835
+ "json": {
2836
+ "description": "Format output as json.",
2837
+ "helpGroup": "GLOBAL",
2838
+ "name": "json",
2839
+ "allowNo": false,
2840
+ "type": "boolean"
2841
+ },
2842
+ "project": {
2843
+ "char": "p",
2844
+ "description": "Project id (UUID) or key",
2845
+ "name": "project",
2846
+ "required": true,
2847
+ "hasDynamicHelp": false,
2848
+ "multiple": false,
2849
+ "type": "option"
2850
+ },
2851
+ "confirm": {
2852
+ "description": "Required: confirm the irreversible deletion",
2853
+ "name": "confirm",
2854
+ "allowNo": false,
2855
+ "type": "boolean"
2856
+ }
2857
+ },
2858
+ "hasDynamicHelp": false,
2859
+ "hiddenAliases": [],
2860
+ "id": "projects:delete",
2861
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2862
+ "pluginName": "@bussolabs/closeyourit-cli",
2863
+ "pluginType": "core",
2864
+ "strict": true,
2865
+ "enableJsonFlag": true,
2866
+ "isESM": false,
2867
+ "relativePath": [
2868
+ "dist",
2869
+ "commands",
2870
+ "projects",
2871
+ "delete.js"
2872
+ ]
2873
+ },
2874
+ "projects:list": {
2875
+ "aliases": [],
2876
+ "args": {},
2877
+ "description": "List the projects visible to you",
2878
+ "examples": [
2879
+ "<%= config.bin %> projects list",
2880
+ "<%= config.bin %> projects list --page 2 --json"
2881
+ ],
2882
+ "flags": {
2883
+ "json": {
2884
+ "description": "Format output as json.",
2885
+ "helpGroup": "GLOBAL",
2886
+ "name": "json",
2887
+ "allowNo": false,
2888
+ "type": "boolean"
2889
+ },
2890
+ "page": {
2891
+ "description": "Page number",
2892
+ "name": "page",
2893
+ "default": 1,
2894
+ "hasDynamicHelp": false,
2895
+ "multiple": false,
2896
+ "type": "option"
2897
+ }
2898
+ },
2899
+ "hasDynamicHelp": false,
2900
+ "hiddenAliases": [],
2901
+ "id": "projects:list",
2902
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2903
+ "pluginName": "@bussolabs/closeyourit-cli",
2904
+ "pluginType": "core",
2905
+ "strict": true,
2906
+ "enableJsonFlag": true,
2907
+ "isESM": false,
2908
+ "relativePath": [
2909
+ "dist",
2910
+ "commands",
2911
+ "projects",
2912
+ "list.js"
2913
+ ]
2914
+ },
2915
+ "projects:set-environments": {
2916
+ "aliases": [],
2917
+ "args": {},
2918
+ "description": "Declare the environments a project receives data from (replaces the current set)",
2919
+ "examples": [
2920
+ "<%= config.bin %> projects set-environments --project legalbloom-rails --code production",
2921
+ "<%= config.bin %> projects set-environments -p LBRA --code production --code staging"
2922
+ ],
2923
+ "flags": {
2924
+ "json": {
2925
+ "description": "Format output as json.",
2926
+ "helpGroup": "GLOBAL",
2927
+ "name": "json",
2928
+ "allowNo": false,
2929
+ "type": "boolean"
2930
+ },
2931
+ "project": {
2932
+ "char": "p",
2933
+ "description": "Project id (UUID) or key",
2934
+ "name": "project",
2935
+ "required": true,
2936
+ "hasDynamicHelp": false,
2937
+ "multiple": false,
2938
+ "type": "option"
2939
+ },
2940
+ "code": {
2941
+ "description": "Environment code, e.g. production (repeatable)",
2942
+ "name": "code",
2943
+ "default": [],
2944
+ "hasDynamicHelp": false,
2945
+ "multiple": true,
2946
+ "type": "option"
2947
+ },
2948
+ "environment-id": {
2949
+ "description": "Environment id / UUID (repeatable)",
2950
+ "name": "environment-id",
2951
+ "default": [],
2952
+ "hasDynamicHelp": false,
2953
+ "multiple": true,
2954
+ "type": "option"
2955
+ }
2956
+ },
2957
+ "hasDynamicHelp": false,
2958
+ "hiddenAliases": [],
2959
+ "id": "projects:set-environments",
2960
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2961
+ "pluginName": "@bussolabs/closeyourit-cli",
2962
+ "pluginType": "core",
2963
+ "strict": true,
2964
+ "enableJsonFlag": true,
2965
+ "isESM": false,
2966
+ "relativePath": [
2967
+ "dist",
2968
+ "commands",
2969
+ "projects",
2970
+ "set-environments.js"
2971
+ ]
2972
+ },
2973
+ "projects:show": {
2974
+ "aliases": [],
2975
+ "args": {
2976
+ "id": {
2977
+ "description": "Project id (UUID) or key",
2978
+ "name": "id",
2979
+ "required": true
2980
+ }
2981
+ },
2982
+ "description": "Show a single project by id or key",
2983
+ "examples": [
2984
+ "<%= config.bin %> projects show acme-api",
2985
+ "<%= config.bin %> projects show <uuid> --json"
2986
+ ],
2987
+ "flags": {
2988
+ "json": {
2989
+ "description": "Format output as json.",
2990
+ "helpGroup": "GLOBAL",
2991
+ "name": "json",
2992
+ "allowNo": false,
2993
+ "type": "boolean"
2994
+ }
2995
+ },
2996
+ "hasDynamicHelp": false,
2997
+ "hiddenAliases": [],
2998
+ "id": "projects:show",
2999
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3000
+ "pluginName": "@bussolabs/closeyourit-cli",
3001
+ "pluginType": "core",
3002
+ "strict": true,
3003
+ "enableJsonFlag": true,
3004
+ "isESM": false,
3005
+ "relativePath": [
3006
+ "dist",
3007
+ "commands",
3008
+ "projects",
3009
+ "show.js"
3010
+ ]
3011
+ },
3012
+ "projects:update": {
3013
+ "aliases": [],
3014
+ "args": {},
3015
+ "description": "Update a project (name, key, color, description, group)",
3016
+ "examples": [
3017
+ "<%= config.bin %> projects update --project LBRA --name \"New name\"",
3018
+ "<%= config.bin %> projects update -p LBRA --group Backend"
3019
+ ],
3020
+ "flags": {
3021
+ "json": {
3022
+ "description": "Format output as json.",
3023
+ "helpGroup": "GLOBAL",
3024
+ "name": "json",
3025
+ "allowNo": false,
3026
+ "type": "boolean"
3027
+ },
3028
+ "project": {
3029
+ "char": "p",
3030
+ "description": "Project id (UUID) or key",
3031
+ "name": "project",
3032
+ "required": true,
3033
+ "hasDynamicHelp": false,
3034
+ "multiple": false,
3035
+ "type": "option"
3036
+ },
3037
+ "name": {
3038
+ "description": "New project name",
3039
+ "name": "name",
3040
+ "hasDynamicHelp": false,
3041
+ "multiple": false,
3042
+ "type": "option"
3043
+ },
3044
+ "key": {
3045
+ "description": "New project key (uppercase A-Z0-9)",
3046
+ "name": "key",
3047
+ "hasDynamicHelp": false,
3048
+ "multiple": false,
3049
+ "type": "option"
3050
+ },
3051
+ "color": {
3052
+ "description": "Color label",
3053
+ "name": "color",
3054
+ "hasDynamicHelp": false,
3055
+ "multiple": false,
3056
+ "type": "option"
3057
+ },
3058
+ "description": {
3059
+ "description": "Free-form description",
3060
+ "name": "description",
3061
+ "hasDynamicHelp": false,
3062
+ "multiple": false,
3063
+ "type": "option"
3064
+ },
3065
+ "group": {
3066
+ "description": "Group id (UUID) or name to move the project into",
3067
+ "name": "group",
3068
+ "hasDynamicHelp": false,
3069
+ "multiple": false,
3070
+ "type": "option"
3071
+ }
3072
+ },
3073
+ "hasDynamicHelp": false,
3074
+ "hiddenAliases": [],
3075
+ "id": "projects:update",
3076
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3077
+ "pluginName": "@bussolabs/closeyourit-cli",
3078
+ "pluginType": "core",
3079
+ "strict": true,
3080
+ "enableJsonFlag": true,
3081
+ "isESM": false,
3082
+ "relativePath": [
3083
+ "dist",
3084
+ "commands",
3085
+ "projects",
3086
+ "update.js"
3087
+ ]
3088
+ },
3089
+ "teams:add-member": {
3090
+ "aliases": [],
3091
+ "args": {
3092
+ "team": {
3093
+ "description": "Team id (UUID) or name",
3094
+ "name": "team",
3095
+ "required": true
3096
+ },
3097
+ "member": {
3098
+ "description": "Member account id or email (must be an org member)",
3099
+ "name": "member",
3100
+ "required": true
3101
+ }
3102
+ },
3103
+ "description": "Add a person to a team, keeping the existing members",
3104
+ "examples": [
3105
+ "<%= config.bin %> teams add-member DriverOne client@acme.com"
3106
+ ],
3107
+ "flags": {
3108
+ "json": {
3109
+ "description": "Format output as json.",
3110
+ "helpGroup": "GLOBAL",
3111
+ "name": "json",
3112
+ "allowNo": false,
3113
+ "type": "boolean"
3114
+ }
3115
+ },
3116
+ "hasDynamicHelp": false,
3117
+ "hiddenAliases": [],
3118
+ "id": "teams:add-member",
3119
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3120
+ "pluginName": "@bussolabs/closeyourit-cli",
3121
+ "pluginType": "core",
3122
+ "strict": true,
3123
+ "enableJsonFlag": true,
3124
+ "isESM": false,
3125
+ "relativePath": [
3126
+ "dist",
3127
+ "commands",
3128
+ "teams",
3129
+ "add-member.js"
3130
+ ]
3131
+ },
3132
+ "teams:create": {
3133
+ "aliases": [],
3134
+ "args": {
3135
+ "name": {
3136
+ "description": "Team name",
3137
+ "name": "name",
3138
+ "required": true
3139
+ }
3140
+ },
3141
+ "description": "Create a team and (optionally) set its roles, group/project scope and members",
3142
+ "examples": [
3143
+ "<%= config.bin %> teams create DriverOne --role Client --group DriverOne",
3144
+ "<%= config.bin %> teams create DriverOne --role Client --group DriverOne --member client@acme.com"
3145
+ ],
3146
+ "flags": {
3147
+ "json": {
3148
+ "description": "Format output as json.",
3149
+ "helpGroup": "GLOBAL",
3150
+ "name": "json",
3151
+ "allowNo": false,
3152
+ "type": "boolean"
3153
+ },
3154
+ "color": {
3155
+ "description": "Color label",
3156
+ "name": "color",
3157
+ "hasDynamicHelp": false,
3158
+ "multiple": false,
3159
+ "type": "option"
3160
+ },
3161
+ "group": {
3162
+ "description": "Group id or name to scope the team to (repeatable)",
3163
+ "name": "group",
3164
+ "hasDynamicHelp": false,
3165
+ "multiple": true,
3166
+ "type": "option"
3167
+ },
3168
+ "member": {
3169
+ "description": "Member account id or email (repeatable; must be an org member)",
3170
+ "name": "member",
3171
+ "hasDynamicHelp": false,
3172
+ "multiple": true,
3173
+ "type": "option"
3174
+ },
3175
+ "project": {
3176
+ "description": "Project id or key to scope the team to (repeatable)",
3177
+ "name": "project",
3178
+ "hasDynamicHelp": false,
3179
+ "multiple": true,
3180
+ "type": "option"
3181
+ },
3182
+ "role": {
3183
+ "description": "Role id or name to grant to the team (repeatable)",
3184
+ "name": "role",
3185
+ "hasDynamicHelp": false,
3186
+ "multiple": true,
3187
+ "type": "option"
3188
+ }
3189
+ },
3190
+ "hasDynamicHelp": false,
3191
+ "hiddenAliases": [],
3192
+ "id": "teams:create",
3193
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3194
+ "pluginName": "@bussolabs/closeyourit-cli",
3195
+ "pluginType": "core",
3196
+ "strict": true,
3197
+ "enableJsonFlag": true,
3198
+ "isESM": false,
3199
+ "relativePath": [
3200
+ "dist",
3201
+ "commands",
3202
+ "teams",
3203
+ "create.js"
3204
+ ]
3205
+ },
3206
+ "teams:delete": {
3207
+ "aliases": [],
3208
+ "args": {
3209
+ "team": {
3210
+ "description": "Team id (UUID) or name",
3211
+ "name": "team",
3212
+ "required": true
3213
+ }
3214
+ },
3215
+ "description": "Delete a team (its members lose the access this team granted)",
3216
+ "examples": [
3217
+ "<%= config.bin %> teams delete DriverOne"
3218
+ ],
3219
+ "flags": {
3220
+ "json": {
3221
+ "description": "Format output as json.",
3222
+ "helpGroup": "GLOBAL",
3223
+ "name": "json",
3224
+ "allowNo": false,
3225
+ "type": "boolean"
3226
+ }
3227
+ },
3228
+ "hasDynamicHelp": false,
3229
+ "hiddenAliases": [],
3230
+ "id": "teams:delete",
3231
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3232
+ "pluginName": "@bussolabs/closeyourit-cli",
3233
+ "pluginType": "core",
3234
+ "strict": true,
3235
+ "enableJsonFlag": true,
3236
+ "isESM": false,
3237
+ "relativePath": [
3238
+ "dist",
3239
+ "commands",
3240
+ "teams",
3241
+ "delete.js"
3242
+ ]
3243
+ },
3244
+ "teams:list": {
3245
+ "aliases": [],
3246
+ "args": {},
3247
+ "description": "List the teams (people with scope) in your organization",
3248
+ "examples": [
3249
+ "<%= config.bin %> teams list",
3250
+ "<%= config.bin %> teams list --json"
3251
+ ],
3252
+ "flags": {
3253
+ "json": {
3254
+ "description": "Format output as json.",
3255
+ "helpGroup": "GLOBAL",
3256
+ "name": "json",
3257
+ "allowNo": false,
3258
+ "type": "boolean"
3259
+ },
3260
+ "page": {
3261
+ "description": "Page number",
3262
+ "name": "page",
3263
+ "default": 1,
3264
+ "hasDynamicHelp": false,
3265
+ "multiple": false,
3266
+ "type": "option"
3267
+ }
3268
+ },
3269
+ "hasDynamicHelp": false,
3270
+ "hiddenAliases": [],
3271
+ "id": "teams:list",
3272
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3273
+ "pluginName": "@bussolabs/closeyourit-cli",
3274
+ "pluginType": "core",
3275
+ "strict": true,
3276
+ "enableJsonFlag": true,
3277
+ "isESM": false,
3278
+ "relativePath": [
3279
+ "dist",
3280
+ "commands",
3281
+ "teams",
3282
+ "list.js"
3283
+ ]
3284
+ },
3285
+ "teams:remove-member": {
3286
+ "aliases": [],
3287
+ "args": {
3288
+ "team": {
3289
+ "description": "Team id (UUID) or name",
3290
+ "name": "team",
3291
+ "required": true
3292
+ },
3293
+ "member": {
3294
+ "description": "Member account id or email",
3295
+ "name": "member",
3296
+ "required": true
3297
+ }
3298
+ },
3299
+ "description": "Remove a person from a team, keeping the other members",
3300
+ "examples": [
3301
+ "<%= config.bin %> teams remove-member DriverOne client@acme.com"
3302
+ ],
3303
+ "flags": {
3304
+ "json": {
3305
+ "description": "Format output as json.",
3306
+ "helpGroup": "GLOBAL",
3307
+ "name": "json",
3308
+ "allowNo": false,
3309
+ "type": "boolean"
3310
+ }
3311
+ },
3312
+ "hasDynamicHelp": false,
3313
+ "hiddenAliases": [],
3314
+ "id": "teams:remove-member",
3315
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3316
+ "pluginName": "@bussolabs/closeyourit-cli",
3317
+ "pluginType": "core",
3318
+ "strict": true,
3319
+ "enableJsonFlag": true,
3320
+ "isESM": false,
3321
+ "relativePath": [
3322
+ "dist",
3323
+ "commands",
3324
+ "teams",
3325
+ "remove-member.js"
3326
+ ]
3327
+ },
3328
+ "teams:show": {
3329
+ "aliases": [],
3330
+ "args": {
3331
+ "team": {
3332
+ "description": "Team id (UUID) or name",
3333
+ "name": "team",
3334
+ "required": true
3335
+ }
3336
+ },
3337
+ "description": "Show a team by id or name (roles, group/project scope, members)",
3338
+ "examples": [
3339
+ "<%= config.bin %> teams show DriverOne"
3340
+ ],
3341
+ "flags": {
3342
+ "json": {
3343
+ "description": "Format output as json.",
3344
+ "helpGroup": "GLOBAL",
3345
+ "name": "json",
3346
+ "allowNo": false,
3347
+ "type": "boolean"
3348
+ }
3349
+ },
3350
+ "hasDynamicHelp": false,
3351
+ "hiddenAliases": [],
3352
+ "id": "teams:show",
3353
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3354
+ "pluginName": "@bussolabs/closeyourit-cli",
3355
+ "pluginType": "core",
3356
+ "strict": true,
3357
+ "enableJsonFlag": true,
3358
+ "isESM": false,
3359
+ "relativePath": [
3360
+ "dist",
3361
+ "commands",
3362
+ "teams",
3363
+ "show.js"
3364
+ ]
3365
+ },
3366
+ "teams:update": {
3367
+ "aliases": [],
3368
+ "args": {
3369
+ "team": {
3370
+ "description": "Team id (UUID) or name",
3371
+ "name": "team",
3372
+ "required": true
3373
+ }
3374
+ },
3375
+ "description": "Update a team. Each given dimension REPLACES the whole set for that dimension.",
3376
+ "examples": [
3377
+ "<%= config.bin %> teams update DriverOne --role Client --group DriverOne",
3378
+ "<%= config.bin %> teams update DriverOne --name \"DriverOne clients\""
3379
+ ],
3380
+ "flags": {
3381
+ "json": {
3382
+ "description": "Format output as json.",
3383
+ "helpGroup": "GLOBAL",
3384
+ "name": "json",
3385
+ "allowNo": false,
3386
+ "type": "boolean"
3387
+ },
3388
+ "color": {
3389
+ "description": "Color label",
3390
+ "name": "color",
3391
+ "hasDynamicHelp": false,
3392
+ "multiple": false,
3393
+ "type": "option"
3394
+ },
3395
+ "group": {
3396
+ "description": "Group id or name (repeatable; replaces the group scope)",
3397
+ "name": "group",
3398
+ "hasDynamicHelp": false,
3399
+ "multiple": true,
3400
+ "type": "option"
3401
+ },
3402
+ "member": {
3403
+ "description": "Member account id or email (repeatable; replaces the members)",
3404
+ "name": "member",
3405
+ "hasDynamicHelp": false,
3406
+ "multiple": true,
3407
+ "type": "option"
3408
+ },
3409
+ "name": {
3410
+ "description": "New name",
3411
+ "name": "name",
3412
+ "hasDynamicHelp": false,
3413
+ "multiple": false,
3414
+ "type": "option"
3415
+ },
3416
+ "project": {
3417
+ "description": "Project id or key (repeatable; replaces the project scope)",
3418
+ "name": "project",
3419
+ "hasDynamicHelp": false,
3420
+ "multiple": true,
3421
+ "type": "option"
3422
+ },
3423
+ "role": {
3424
+ "description": "Role id or name (repeatable; replaces the roles)",
3425
+ "name": "role",
3426
+ "hasDynamicHelp": false,
3427
+ "multiple": true,
3428
+ "type": "option"
3429
+ }
3430
+ },
3431
+ "hasDynamicHelp": false,
3432
+ "hiddenAliases": [],
3433
+ "id": "teams:update",
3434
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3435
+ "pluginName": "@bussolabs/closeyourit-cli",
3436
+ "pluginType": "core",
3437
+ "strict": true,
3438
+ "enableJsonFlag": true,
3439
+ "isESM": false,
3440
+ "relativePath": [
3441
+ "dist",
3442
+ "commands",
3443
+ "teams",
3444
+ "update.js"
3445
+ ]
3446
+ },
3447
+ "roles:create": {
3448
+ "aliases": [],
3449
+ "args": {
3450
+ "name": {
3451
+ "description": "Role name",
3452
+ "name": "name",
3453
+ "required": true
3454
+ }
3455
+ },
3456
+ "description": "Create an RBAC role (a named bundle of permission keys)",
3457
+ "examples": [
3458
+ "<%= config.bin %> roles create Client --permission tickets.edit --permission tickets.assign"
3459
+ ],
3460
+ "flags": {
3461
+ "json": {
3462
+ "description": "Format output as json.",
3463
+ "helpGroup": "GLOBAL",
3464
+ "name": "json",
3465
+ "allowNo": false,
3466
+ "type": "boolean"
3467
+ },
3468
+ "color": {
3469
+ "description": "Color label",
3470
+ "name": "color",
3471
+ "hasDynamicHelp": false,
3472
+ "multiple": false,
3473
+ "type": "option"
3474
+ },
3475
+ "permission": {
3476
+ "description": "Permission key from the catalog (repeatable)",
3477
+ "name": "permission",
3478
+ "hasDynamicHelp": false,
3479
+ "multiple": true,
3480
+ "type": "option"
3481
+ }
3482
+ },
3483
+ "hasDynamicHelp": false,
3484
+ "hiddenAliases": [],
3485
+ "id": "roles:create",
3486
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3487
+ "pluginName": "@bussolabs/closeyourit-cli",
3488
+ "pluginType": "core",
3489
+ "strict": true,
3490
+ "enableJsonFlag": true,
3491
+ "isESM": false,
3492
+ "relativePath": [
3493
+ "dist",
3494
+ "commands",
3495
+ "roles",
3496
+ "create.js"
3497
+ ]
3498
+ },
3499
+ "roles:delete": {
3500
+ "aliases": [],
3501
+ "args": {
3502
+ "role": {
3503
+ "description": "Role id (UUID) or name",
3504
+ "name": "role",
3505
+ "required": true
3506
+ }
3507
+ },
3508
+ "description": "Delete a role (its assignments to teams and accounts are removed)",
3509
+ "examples": [
3510
+ "<%= config.bin %> roles delete Client"
3511
+ ],
3512
+ "flags": {
3513
+ "json": {
3514
+ "description": "Format output as json.",
3515
+ "helpGroup": "GLOBAL",
3516
+ "name": "json",
3517
+ "allowNo": false,
3518
+ "type": "boolean"
3519
+ }
3520
+ },
3521
+ "hasDynamicHelp": false,
3522
+ "hiddenAliases": [],
3523
+ "id": "roles:delete",
3524
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3525
+ "pluginName": "@bussolabs/closeyourit-cli",
3526
+ "pluginType": "core",
3527
+ "strict": true,
3528
+ "enableJsonFlag": true,
3529
+ "isESM": false,
3530
+ "relativePath": [
3531
+ "dist",
3532
+ "commands",
3533
+ "roles",
3534
+ "delete.js"
3535
+ ]
3536
+ },
3537
+ "roles:list": {
3538
+ "aliases": [],
3539
+ "args": {},
3540
+ "description": "List the RBAC roles in your organization",
3541
+ "examples": [
3542
+ "<%= config.bin %> roles list",
3543
+ "<%= config.bin %> roles list --json"
3544
+ ],
3545
+ "flags": {
3546
+ "json": {
3547
+ "description": "Format output as json.",
3548
+ "helpGroup": "GLOBAL",
3549
+ "name": "json",
3550
+ "allowNo": false,
3551
+ "type": "boolean"
3552
+ },
3553
+ "page": {
3554
+ "description": "Page number",
3555
+ "name": "page",
3556
+ "default": 1,
3557
+ "hasDynamicHelp": false,
3558
+ "multiple": false,
3559
+ "type": "option"
3560
+ }
3561
+ },
3562
+ "hasDynamicHelp": false,
3563
+ "hiddenAliases": [],
3564
+ "id": "roles:list",
3565
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3566
+ "pluginName": "@bussolabs/closeyourit-cli",
3567
+ "pluginType": "core",
3568
+ "strict": true,
3569
+ "enableJsonFlag": true,
3570
+ "isESM": false,
3571
+ "relativePath": [
3572
+ "dist",
3573
+ "commands",
3574
+ "roles",
3575
+ "list.js"
3576
+ ]
3577
+ },
3578
+ "roles:show": {
3579
+ "aliases": [],
3580
+ "args": {
3581
+ "role": {
3582
+ "description": "Role id (UUID) or name",
3583
+ "name": "role",
3584
+ "required": true
3585
+ }
3586
+ },
3587
+ "description": "Show a role by id or name (with its permission keys)",
3588
+ "examples": [
3589
+ "<%= config.bin %> roles show Client"
3590
+ ],
3591
+ "flags": {
3592
+ "json": {
3593
+ "description": "Format output as json.",
3594
+ "helpGroup": "GLOBAL",
3595
+ "name": "json",
3596
+ "allowNo": false,
3597
+ "type": "boolean"
3598
+ }
3599
+ },
3600
+ "hasDynamicHelp": false,
3601
+ "hiddenAliases": [],
3602
+ "id": "roles:show",
3603
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3604
+ "pluginName": "@bussolabs/closeyourit-cli",
3605
+ "pluginType": "core",
3606
+ "strict": true,
3607
+ "enableJsonFlag": true,
3608
+ "isESM": false,
3609
+ "relativePath": [
3610
+ "dist",
3611
+ "commands",
3612
+ "roles",
3613
+ "show.js"
3614
+ ]
3615
+ },
3616
+ "roles:update": {
3617
+ "aliases": [],
3618
+ "args": {
3619
+ "role": {
3620
+ "description": "Role id (UUID) or name",
3621
+ "name": "role",
3622
+ "required": true
3623
+ }
3624
+ },
3625
+ "description": "Update a role (rename, recolor, or replace its permission keys)",
3626
+ "examples": [
3627
+ "<%= config.bin %> roles update Client --permission tickets.edit --permission tickets.assign",
3628
+ "<%= config.bin %> roles update Client --name \"Client manager\""
3629
+ ],
3630
+ "flags": {
3631
+ "json": {
3632
+ "description": "Format output as json.",
3633
+ "helpGroup": "GLOBAL",
3634
+ "name": "json",
3635
+ "allowNo": false,
3636
+ "type": "boolean"
3637
+ },
3638
+ "color": {
3639
+ "description": "Color label",
3640
+ "name": "color",
3641
+ "hasDynamicHelp": false,
3642
+ "multiple": false,
3643
+ "type": "option"
3644
+ },
3645
+ "name": {
3646
+ "description": "New name",
3647
+ "name": "name",
3648
+ "hasDynamicHelp": false,
3649
+ "multiple": false,
3650
+ "type": "option"
3651
+ },
3652
+ "permission": {
3653
+ "description": "Permission key (repeatable); when given, REPLACES the whole set",
3654
+ "name": "permission",
3655
+ "hasDynamicHelp": false,
3656
+ "multiple": true,
3657
+ "type": "option"
3658
+ }
3659
+ },
3660
+ "hasDynamicHelp": false,
3661
+ "hiddenAliases": [],
3662
+ "id": "roles:update",
3663
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3664
+ "pluginName": "@bussolabs/closeyourit-cli",
3665
+ "pluginType": "core",
3666
+ "strict": true,
3667
+ "enableJsonFlag": true,
3668
+ "isESM": false,
3669
+ "relativePath": [
3670
+ "dist",
3671
+ "commands",
3672
+ "roles",
3673
+ "update.js"
3674
+ ]
3675
+ },
3676
+ "tickets:assign": {
3677
+ "aliases": [],
3678
+ "args": {
3679
+ "id": {
3680
+ "description": "Ticket id",
3681
+ "name": "id",
3682
+ "required": true
3683
+ }
3684
+ },
3685
+ "description": "Assign a ticket to an account, or unassign it (--unassign)",
3686
+ "examples": [
3687
+ "<%= config.bin %> tickets assign <ticket-id> --project acme-api --assignee-id <account-id>",
3688
+ "<%= config.bin %> tickets assign <ticket-id> --project acme-api --unassign"
3689
+ ],
3690
+ "flags": {
3691
+ "json": {
3692
+ "description": "Format output as json.",
3693
+ "helpGroup": "GLOBAL",
3694
+ "name": "json",
3695
+ "allowNo": false,
3696
+ "type": "boolean"
3697
+ },
3698
+ "project": {
3699
+ "char": "p",
3700
+ "description": "Project id (UUID) or key",
3701
+ "name": "project",
3702
+ "required": true,
3703
+ "hasDynamicHelp": false,
3704
+ "multiple": false,
3705
+ "type": "option"
3706
+ },
3707
+ "assignee-id": {
3708
+ "description": "Account id to assign",
3709
+ "exclusive": [
3710
+ "unassign"
3711
+ ],
3712
+ "name": "assignee-id",
3713
+ "hasDynamicHelp": false,
3714
+ "multiple": false,
3715
+ "type": "option"
3716
+ },
3717
+ "unassign": {
3718
+ "description": "Remove the current assignee (DELETE)",
3719
+ "exclusive": [
3720
+ "assignee-id"
3721
+ ],
3722
+ "name": "unassign",
3723
+ "allowNo": false,
3724
+ "type": "boolean"
3725
+ }
3726
+ },
3727
+ "hasDynamicHelp": false,
3728
+ "hiddenAliases": [],
3729
+ "id": "tickets:assign",
3730
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3731
+ "pluginName": "@bussolabs/closeyourit-cli",
3732
+ "pluginType": "core",
3733
+ "strict": true,
3734
+ "enableJsonFlag": true,
3735
+ "isESM": false,
3736
+ "relativePath": [
3737
+ "dist",
3738
+ "commands",
3739
+ "tickets",
3740
+ "assign.js"
3741
+ ]
3742
+ },
3743
+ "tickets:attach": {
3744
+ "aliases": [],
3745
+ "args": {
3746
+ "id": {
3747
+ "description": "Ticket id",
3748
+ "name": "id",
3749
+ "required": true
3750
+ }
3751
+ },
3752
+ "description": "Attach one or more local files to a ticket",
3753
+ "examples": [
3754
+ "<%= config.bin %> tickets attach <ticket-id> --project acme-api --file ./screenshot.png",
3755
+ "<%= config.bin %> tickets attach <ticket-id> -p acme-api --file ./log.txt --file ./trace.json"
3756
+ ],
3757
+ "flags": {
3758
+ "json": {
3759
+ "description": "Format output as json.",
3760
+ "helpGroup": "GLOBAL",
3761
+ "name": "json",
3762
+ "allowNo": false,
3763
+ "type": "boolean"
3764
+ },
3765
+ "project": {
3766
+ "char": "p",
3767
+ "description": "Project id (UUID) or key",
3768
+ "name": "project",
3769
+ "required": true,
3770
+ "hasDynamicHelp": false,
3771
+ "multiple": false,
3772
+ "type": "option"
3773
+ },
3774
+ "file": {
3775
+ "description": "Path to a local file to upload (repeatable)",
3776
+ "name": "file",
3777
+ "required": true,
3778
+ "hasDynamicHelp": false,
3779
+ "multiple": true,
3780
+ "type": "option"
3781
+ }
3782
+ },
3783
+ "hasDynamicHelp": false,
3784
+ "hiddenAliases": [],
3785
+ "id": "tickets:attach",
3786
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3787
+ "pluginName": "@bussolabs/closeyourit-cli",
3788
+ "pluginType": "core",
3789
+ "strict": true,
3790
+ "enableJsonFlag": true,
3791
+ "isESM": false,
3792
+ "relativePath": [
3793
+ "dist",
3794
+ "commands",
3795
+ "tickets",
3796
+ "attach.js"
3797
+ ]
3798
+ },
3799
+ "tickets:comment-delete": {
3800
+ "aliases": [],
3801
+ "args": {
3802
+ "id": {
3803
+ "description": "Ticket id",
3804
+ "name": "id",
3805
+ "required": true
3806
+ }
3807
+ },
3808
+ "description": "Delete a comment from a ticket (author, or with tickets.comment.delete_any)",
3809
+ "examples": [
3810
+ "<%= config.bin %> tickets comment-delete <ticket-id> --project acme-api --comment-id <id> --confirm"
3811
+ ],
3812
+ "flags": {
3813
+ "json": {
3814
+ "description": "Format output as json.",
3815
+ "helpGroup": "GLOBAL",
3816
+ "name": "json",
3817
+ "allowNo": false,
3818
+ "type": "boolean"
3819
+ },
3820
+ "project": {
3821
+ "char": "p",
3822
+ "description": "Project id (UUID) or key",
3823
+ "name": "project",
3824
+ "required": true,
3825
+ "hasDynamicHelp": false,
3826
+ "multiple": false,
3827
+ "type": "option"
3828
+ },
3829
+ "comment-id": {
3830
+ "description": "Comment id to delete",
3831
+ "name": "comment-id",
3832
+ "required": true,
3833
+ "hasDynamicHelp": false,
3834
+ "multiple": false,
3835
+ "type": "option"
3836
+ },
3837
+ "confirm": {
3838
+ "description": "Required: confirm the irreversible deletion",
3839
+ "name": "confirm",
3840
+ "allowNo": false,
3841
+ "type": "boolean"
3842
+ }
3843
+ },
3844
+ "hasDynamicHelp": false,
3845
+ "hiddenAliases": [],
3846
+ "id": "tickets:comment-delete",
3847
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3848
+ "pluginName": "@bussolabs/closeyourit-cli",
3849
+ "pluginType": "core",
3850
+ "strict": true,
3851
+ "enableJsonFlag": true,
3852
+ "isESM": false,
3853
+ "relativePath": [
3854
+ "dist",
3855
+ "commands",
3856
+ "tickets",
3857
+ "comment-delete.js"
3858
+ ]
3859
+ },
3860
+ "tickets:comment": {
3861
+ "aliases": [],
3862
+ "args": {
3863
+ "id": {
3864
+ "description": "Ticket id",
3865
+ "name": "id",
3866
+ "required": true
3867
+ }
3868
+ },
3869
+ "description": "Add a comment to a ticket",
3870
+ "examples": [
3871
+ "<%= config.bin %> tickets comment <ticket-id> --project acme-api --body \"Reproduced on staging\""
3872
+ ],
3873
+ "flags": {
3874
+ "json": {
3875
+ "description": "Format output as json.",
3876
+ "helpGroup": "GLOBAL",
3877
+ "name": "json",
3878
+ "allowNo": false,
3879
+ "type": "boolean"
3880
+ },
3881
+ "project": {
3882
+ "char": "p",
3883
+ "description": "Project id (UUID) or key",
3884
+ "name": "project",
3885
+ "required": true,
3886
+ "hasDynamicHelp": false,
3887
+ "multiple": false,
3888
+ "type": "option"
3889
+ },
3890
+ "body": {
3891
+ "description": "Comment body",
3892
+ "name": "body",
3893
+ "required": true,
3894
+ "hasDynamicHelp": false,
3895
+ "multiple": false,
3896
+ "type": "option"
3897
+ }
3898
+ },
3899
+ "hasDynamicHelp": false,
3900
+ "hiddenAliases": [],
3901
+ "id": "tickets:comment",
3902
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3903
+ "pluginName": "@bussolabs/closeyourit-cli",
3904
+ "pluginType": "core",
3905
+ "strict": true,
3906
+ "enableJsonFlag": true,
3907
+ "isESM": false,
3908
+ "relativePath": [
3909
+ "dist",
3910
+ "commands",
3911
+ "tickets",
3912
+ "comment.js"
3913
+ ]
3914
+ },
3915
+ "tickets:create": {
3916
+ "aliases": [],
3917
+ "args": {},
3918
+ "description": "Create a ticket",
3919
+ "examples": [
3920
+ "<%= config.bin %> tickets create --project acme-api --title \"Checkout fails\"",
3921
+ "<%= config.bin %> tickets create -p acme-api --title \"Login bug\" --kind bug --step-given \"logged out\" --step-when \"I submit\" --step-then \"it 500s\""
3922
+ ],
3923
+ "flags": {
3924
+ "json": {
3925
+ "description": "Format output as json.",
3926
+ "helpGroup": "GLOBAL",
3927
+ "name": "json",
3928
+ "allowNo": false,
3929
+ "type": "boolean"
3930
+ },
3931
+ "project": {
3932
+ "char": "p",
3933
+ "description": "Project id (UUID) or key",
3934
+ "name": "project",
3935
+ "required": true,
3936
+ "hasDynamicHelp": false,
3937
+ "multiple": false,
3938
+ "type": "option"
3939
+ },
3940
+ "title": {
3941
+ "description": "Ticket title",
3942
+ "name": "title",
3943
+ "required": true,
3944
+ "hasDynamicHelp": false,
3945
+ "multiple": false,
3946
+ "type": "option"
3947
+ },
3948
+ "kind": {
3949
+ "description": "Ticket kind",
3950
+ "name": "kind",
3951
+ "default": "bug",
3952
+ "hasDynamicHelp": false,
3953
+ "multiple": false,
3954
+ "type": "option"
3955
+ },
3956
+ "description": {
3957
+ "description": "Free-form description",
3958
+ "name": "description",
3959
+ "hasDynamicHelp": false,
3960
+ "multiple": false,
3961
+ "type": "option"
3962
+ },
3963
+ "step-given": {
3964
+ "description": "Given (precondition)",
3965
+ "name": "step-given",
3966
+ "hasDynamicHelp": false,
3967
+ "multiple": false,
3968
+ "type": "option"
3969
+ },
3970
+ "step-when": {
3971
+ "description": "When (action)",
3972
+ "name": "step-when",
3973
+ "hasDynamicHelp": false,
3974
+ "multiple": false,
3975
+ "type": "option"
3976
+ },
3977
+ "step-then": {
3978
+ "description": "Then (outcome)",
3979
+ "name": "step-then",
3980
+ "hasDynamicHelp": false,
3981
+ "multiple": false,
3982
+ "type": "option"
3983
+ },
3984
+ "step-expected": {
3985
+ "description": "Expected result",
3986
+ "name": "step-expected",
3987
+ "hasDynamicHelp": false,
3988
+ "multiple": false,
3989
+ "type": "option"
3990
+ },
3991
+ "status-id": {
3992
+ "description": "Status lookup id",
3993
+ "name": "status-id",
3994
+ "hasDynamicHelp": false,
3995
+ "multiple": false,
3996
+ "type": "option"
3997
+ },
3998
+ "priority-id": {
3999
+ "description": "Priority lookup id",
4000
+ "name": "priority-id",
4001
+ "hasDynamicHelp": false,
4002
+ "multiple": false,
4003
+ "type": "option"
4004
+ }
4005
+ },
4006
+ "hasDynamicHelp": false,
4007
+ "hiddenAliases": [],
4008
+ "id": "tickets:create",
4009
+ "pluginAlias": "@bussolabs/closeyourit-cli",
4010
+ "pluginName": "@bussolabs/closeyourit-cli",
4011
+ "pluginType": "core",
4012
+ "strict": true,
4013
+ "enableJsonFlag": true,
4014
+ "isESM": false,
4015
+ "relativePath": [
4016
+ "dist",
4017
+ "commands",
4018
+ "tickets",
4019
+ "create.js"
4020
+ ]
4021
+ },
4022
+ "tickets:delete": {
4023
+ "aliases": [],
4024
+ "args": {
4025
+ "id": {
4026
+ "description": "Ticket id",
4027
+ "name": "id",
4028
+ "required": true
4029
+ }
4030
+ },
4031
+ "description": "Delete a ticket (irreversible)",
4032
+ "examples": [
4033
+ "<%= config.bin %> tickets delete <ticket-id> --project acme-api --confirm"
4034
+ ],
4035
+ "flags": {
4036
+ "json": {
4037
+ "description": "Format output as json.",
4038
+ "helpGroup": "GLOBAL",
4039
+ "name": "json",
4040
+ "allowNo": false,
4041
+ "type": "boolean"
4042
+ },
4043
+ "project": {
4044
+ "char": "p",
4045
+ "description": "Project id (UUID) or key",
4046
+ "name": "project",
4047
+ "required": true,
4048
+ "hasDynamicHelp": false,
4049
+ "multiple": false,
4050
+ "type": "option"
4051
+ },
4052
+ "confirm": {
4053
+ "description": "Required: confirm the irreversible deletion",
4054
+ "name": "confirm",
4055
+ "allowNo": false,
4056
+ "type": "boolean"
4057
+ }
4058
+ },
4059
+ "hasDynamicHelp": false,
4060
+ "hiddenAliases": [],
4061
+ "id": "tickets:delete",
4062
+ "pluginAlias": "@bussolabs/closeyourit-cli",
4063
+ "pluginName": "@bussolabs/closeyourit-cli",
4064
+ "pluginType": "core",
4065
+ "strict": true,
4066
+ "enableJsonFlag": true,
4067
+ "isESM": false,
4068
+ "relativePath": [
4069
+ "dist",
4070
+ "commands",
4071
+ "tickets",
4072
+ "delete.js"
4073
+ ]
4074
+ },
4075
+ "tickets:detach": {
4076
+ "aliases": [],
4077
+ "args": {
4078
+ "id": {
4079
+ "description": "Ticket id",
4080
+ "name": "id",
4081
+ "required": true
4082
+ }
4083
+ },
4084
+ "description": "Remove an attachment from a ticket (irreversible)",
4085
+ "examples": [
4086
+ "<%= config.bin %> tickets detach <ticket-id> --project acme-api --attachment <attachment-id> --confirm"
4087
+ ],
1327
4088
  "flags": {
1328
4089
  "json": {
1329
4090
  "description": "Format output as json.",
@@ -1331,11 +4092,34 @@
1331
4092
  "name": "json",
1332
4093
  "allowNo": false,
1333
4094
  "type": "boolean"
4095
+ },
4096
+ "project": {
4097
+ "char": "p",
4098
+ "description": "Project id (UUID) or key",
4099
+ "name": "project",
4100
+ "required": true,
4101
+ "hasDynamicHelp": false,
4102
+ "multiple": false,
4103
+ "type": "option"
4104
+ },
4105
+ "attachment": {
4106
+ "description": "Attachment id to remove",
4107
+ "name": "attachment",
4108
+ "required": true,
4109
+ "hasDynamicHelp": false,
4110
+ "multiple": false,
4111
+ "type": "option"
4112
+ },
4113
+ "confirm": {
4114
+ "description": "Required: confirm the irreversible deletion",
4115
+ "name": "confirm",
4116
+ "allowNo": false,
4117
+ "type": "boolean"
1334
4118
  }
1335
4119
  },
1336
4120
  "hasDynamicHelp": false,
1337
4121
  "hiddenAliases": [],
1338
- "id": "teams:delete",
4122
+ "id": "tickets:detach",
1339
4123
  "pluginAlias": "@bussolabs/closeyourit-cli",
1340
4124
  "pluginName": "@bussolabs/closeyourit-cli",
1341
4125
  "pluginType": "core",
@@ -1345,17 +4129,17 @@
1345
4129
  "relativePath": [
1346
4130
  "dist",
1347
4131
  "commands",
1348
- "teams",
1349
- "delete.js"
4132
+ "tickets",
4133
+ "detach.js"
1350
4134
  ]
1351
4135
  },
1352
- "teams:list": {
4136
+ "tickets:list": {
1353
4137
  "aliases": [],
1354
4138
  "args": {},
1355
- "description": "List the teams (people with scope) in your organization",
4139
+ "description": "List tickets for a project",
1356
4140
  "examples": [
1357
- "<%= config.bin %> teams list",
1358
- "<%= config.bin %> teams list --json"
4141
+ "<%= config.bin %> tickets list --project acme-api",
4142
+ "<%= config.bin %> tickets list -p acme-api --json"
1359
4143
  ],
1360
4144
  "flags": {
1361
4145
  "json": {
@@ -1365,6 +4149,15 @@
1365
4149
  "allowNo": false,
1366
4150
  "type": "boolean"
1367
4151
  },
4152
+ "project": {
4153
+ "char": "p",
4154
+ "description": "Project id (UUID) or key",
4155
+ "name": "project",
4156
+ "required": true,
4157
+ "hasDynamicHelp": false,
4158
+ "multiple": false,
4159
+ "type": "option"
4160
+ },
1368
4161
  "page": {
1369
4162
  "description": "Page number",
1370
4163
  "name": "page",
@@ -1376,7 +4169,7 @@
1376
4169
  },
1377
4170
  "hasDynamicHelp": false,
1378
4171
  "hiddenAliases": [],
1379
- "id": "teams:list",
4172
+ "id": "tickets:list",
1380
4173
  "pluginAlias": "@bussolabs/closeyourit-cli",
1381
4174
  "pluginName": "@bussolabs/closeyourit-cli",
1382
4175
  "pluginType": "core",
@@ -1386,27 +4179,23 @@
1386
4179
  "relativePath": [
1387
4180
  "dist",
1388
4181
  "commands",
1389
- "teams",
4182
+ "tickets",
1390
4183
  "list.js"
1391
4184
  ]
1392
4185
  },
1393
- "teams:remove-member": {
4186
+ "tickets:milestone": {
1394
4187
  "aliases": [],
1395
4188
  "args": {
1396
- "team": {
1397
- "description": "Team id (UUID) or name",
1398
- "name": "team",
1399
- "required": true
1400
- },
1401
- "member": {
1402
- "description": "Member account id or email",
1403
- "name": "member",
4189
+ "id": {
4190
+ "description": "Ticket id",
4191
+ "name": "id",
1404
4192
  "required": true
1405
4193
  }
1406
4194
  },
1407
- "description": "Remove a person from a team, keeping the other members",
4195
+ "description": "Set or clear a ticket milestone (--clear)",
1408
4196
  "examples": [
1409
- "<%= config.bin %> teams remove-member DriverOne client@acme.com"
4197
+ "<%= config.bin %> tickets milestone <ticket-id> --project acme-api --milestone-id <milestone-id>",
4198
+ "<%= config.bin %> tickets milestone <ticket-id> --project acme-api --clear"
1410
4199
  ],
1411
4200
  "flags": {
1412
4201
  "json": {
@@ -1415,11 +4204,39 @@
1415
4204
  "name": "json",
1416
4205
  "allowNo": false,
1417
4206
  "type": "boolean"
4207
+ },
4208
+ "project": {
4209
+ "char": "p",
4210
+ "description": "Project id (UUID) or key",
4211
+ "name": "project",
4212
+ "required": true,
4213
+ "hasDynamicHelp": false,
4214
+ "multiple": false,
4215
+ "type": "option"
4216
+ },
4217
+ "milestone-id": {
4218
+ "description": "Milestone id (of this project)",
4219
+ "exclusive": [
4220
+ "clear"
4221
+ ],
4222
+ "name": "milestone-id",
4223
+ "hasDynamicHelp": false,
4224
+ "multiple": false,
4225
+ "type": "option"
4226
+ },
4227
+ "clear": {
4228
+ "description": "Remove the current milestone (DELETE)",
4229
+ "exclusive": [
4230
+ "milestone-id"
4231
+ ],
4232
+ "name": "clear",
4233
+ "allowNo": false,
4234
+ "type": "boolean"
1418
4235
  }
1419
4236
  },
1420
4237
  "hasDynamicHelp": false,
1421
4238
  "hiddenAliases": [],
1422
- "id": "teams:remove-member",
4239
+ "id": "tickets:milestone",
1423
4240
  "pluginAlias": "@bussolabs/closeyourit-cli",
1424
4241
  "pluginName": "@bussolabs/closeyourit-cli",
1425
4242
  "pluginType": "core",
@@ -1429,22 +4246,22 @@
1429
4246
  "relativePath": [
1430
4247
  "dist",
1431
4248
  "commands",
1432
- "teams",
1433
- "remove-member.js"
4249
+ "tickets",
4250
+ "milestone.js"
1434
4251
  ]
1435
4252
  },
1436
- "teams:show": {
4253
+ "tickets:show": {
1437
4254
  "aliases": [],
1438
4255
  "args": {
1439
- "team": {
1440
- "description": "Team id (UUID) or name",
1441
- "name": "team",
4256
+ "id": {
4257
+ "description": "Ticket id or code",
4258
+ "name": "id",
1442
4259
  "required": true
1443
4260
  }
1444
4261
  },
1445
- "description": "Show a team by id or name (roles, group/project scope, members)",
4262
+ "description": "Show a single ticket",
1446
4263
  "examples": [
1447
- "<%= config.bin %> teams show DriverOne"
4264
+ "<%= config.bin %> tickets show <ticket-id> --project acme-api"
1448
4265
  ],
1449
4266
  "flags": {
1450
4267
  "json": {
@@ -1453,11 +4270,20 @@
1453
4270
  "name": "json",
1454
4271
  "allowNo": false,
1455
4272
  "type": "boolean"
4273
+ },
4274
+ "project": {
4275
+ "char": "p",
4276
+ "description": "Project id (UUID) or key",
4277
+ "name": "project",
4278
+ "required": true,
4279
+ "hasDynamicHelp": false,
4280
+ "multiple": false,
4281
+ "type": "option"
1456
4282
  }
1457
4283
  },
1458
4284
  "hasDynamicHelp": false,
1459
4285
  "hiddenAliases": [],
1460
- "id": "teams:show",
4286
+ "id": "tickets:show",
1461
4287
  "pluginAlias": "@bussolabs/closeyourit-cli",
1462
4288
  "pluginName": "@bussolabs/closeyourit-cli",
1463
4289
  "pluginType": "core",
@@ -1467,23 +4293,22 @@
1467
4293
  "relativePath": [
1468
4294
  "dist",
1469
4295
  "commands",
1470
- "teams",
4296
+ "tickets",
1471
4297
  "show.js"
1472
4298
  ]
1473
4299
  },
1474
- "teams:update": {
4300
+ "tickets:status": {
1475
4301
  "aliases": [],
1476
4302
  "args": {
1477
- "team": {
1478
- "description": "Team id (UUID) or name",
1479
- "name": "team",
4303
+ "id": {
4304
+ "description": "Ticket id",
4305
+ "name": "id",
1480
4306
  "required": true
1481
4307
  }
1482
4308
  },
1483
- "description": "Update a team. Each given dimension REPLACES the whole set for that dimension.",
4309
+ "description": "Change a ticket status",
1484
4310
  "examples": [
1485
- "<%= config.bin %> teams update DriverOne --role Client --group DriverOne",
1486
- "<%= config.bin %> teams update DriverOne --name \"DriverOne clients\""
4311
+ "<%= config.bin %> tickets status <ticket-id> --project acme-api --status-id <status-id>"
1487
4312
  ],
1488
4313
  "flags": {
1489
4314
  "json": {
@@ -1493,52 +4318,74 @@
1493
4318
  "allowNo": false,
1494
4319
  "type": "boolean"
1495
4320
  },
1496
- "color": {
1497
- "description": "Color label",
1498
- "name": "color",
4321
+ "project": {
4322
+ "char": "p",
4323
+ "description": "Project id (UUID) or key",
4324
+ "name": "project",
4325
+ "required": true,
1499
4326
  "hasDynamicHelp": false,
1500
4327
  "multiple": false,
1501
4328
  "type": "option"
1502
4329
  },
1503
- "group": {
1504
- "description": "Group id or name (repeatable; replaces the group scope)",
1505
- "name": "group",
1506
- "hasDynamicHelp": false,
1507
- "multiple": true,
1508
- "type": "option"
1509
- },
1510
- "member": {
1511
- "description": "Member account id or email (repeatable; replaces the members)",
1512
- "name": "member",
1513
- "hasDynamicHelp": false,
1514
- "multiple": true,
1515
- "type": "option"
1516
- },
1517
- "name": {
1518
- "description": "New name",
1519
- "name": "name",
4330
+ "status-id": {
4331
+ "description": "Target status lookup id",
4332
+ "name": "status-id",
4333
+ "required": true,
1520
4334
  "hasDynamicHelp": false,
1521
4335
  "multiple": false,
1522
4336
  "type": "option"
4337
+ }
4338
+ },
4339
+ "hasDynamicHelp": false,
4340
+ "hiddenAliases": [],
4341
+ "id": "tickets:status",
4342
+ "pluginAlias": "@bussolabs/closeyourit-cli",
4343
+ "pluginName": "@bussolabs/closeyourit-cli",
4344
+ "pluginType": "core",
4345
+ "strict": true,
4346
+ "enableJsonFlag": true,
4347
+ "isESM": false,
4348
+ "relativePath": [
4349
+ "dist",
4350
+ "commands",
4351
+ "tickets",
4352
+ "status.js"
4353
+ ]
4354
+ },
4355
+ "tickets:unvote": {
4356
+ "aliases": [],
4357
+ "args": {
4358
+ "id": {
4359
+ "description": "Ticket id",
4360
+ "name": "id",
4361
+ "required": true
4362
+ }
4363
+ },
4364
+ "description": "Remove your upvote from a ticket (idempotent)",
4365
+ "examples": [
4366
+ "<%= config.bin %> tickets unvote <ticket-id> --project acme-api"
4367
+ ],
4368
+ "flags": {
4369
+ "json": {
4370
+ "description": "Format output as json.",
4371
+ "helpGroup": "GLOBAL",
4372
+ "name": "json",
4373
+ "allowNo": false,
4374
+ "type": "boolean"
1523
4375
  },
1524
4376
  "project": {
1525
- "description": "Project id or key (repeatable; replaces the project scope)",
4377
+ "char": "p",
4378
+ "description": "Project id (UUID) or key",
1526
4379
  "name": "project",
4380
+ "required": true,
1527
4381
  "hasDynamicHelp": false,
1528
- "multiple": true,
1529
- "type": "option"
1530
- },
1531
- "role": {
1532
- "description": "Role id or name (repeatable; replaces the roles)",
1533
- "name": "role",
1534
- "hasDynamicHelp": false,
1535
- "multiple": true,
4382
+ "multiple": false,
1536
4383
  "type": "option"
1537
4384
  }
1538
4385
  },
1539
4386
  "hasDynamicHelp": false,
1540
4387
  "hiddenAliases": [],
1541
- "id": "teams:update",
4388
+ "id": "tickets:unvote",
1542
4389
  "pluginAlias": "@bussolabs/closeyourit-cli",
1543
4390
  "pluginName": "@bussolabs/closeyourit-cli",
1544
4391
  "pluginType": "core",
@@ -1548,17 +4395,23 @@
1548
4395
  "relativePath": [
1549
4396
  "dist",
1550
4397
  "commands",
1551
- "teams",
1552
- "update.js"
4398
+ "tickets",
4399
+ "unvote.js"
1553
4400
  ]
1554
4401
  },
1555
- "tickets:create": {
4402
+ "tickets:update": {
1556
4403
  "aliases": [],
1557
- "args": {},
1558
- "description": "Create a ticket",
4404
+ "args": {
4405
+ "id": {
4406
+ "description": "Ticket id",
4407
+ "name": "id",
4408
+ "required": true
4409
+ }
4410
+ },
4411
+ "description": "Update a ticket (full replace — fields you omit are cleared server-side)",
1559
4412
  "examples": [
1560
- "<%= config.bin %> tickets create --project acme-api --title \"Checkout fails\"",
1561
- "<%= config.bin %> tickets create -p acme-api --title \"Login bug\" --kind bug --step-given \"logged out\" --step-when \"I submit\" --step-then \"it 500s\""
4413
+ "<%= config.bin %> tickets update <ticket-id> --project acme-api --title \"New title\"",
4414
+ "<%= config.bin %> tickets update <ticket-id> -p acme-api --title \"Login bug\" --kind bug --step-given \"logged out\" --step-when \"I submit\" --step-then \"it 500s\" --step-expected \"dashboard loads\""
1562
4415
  ],
1563
4416
  "flags": {
1564
4417
  "json": {
@@ -1580,15 +4433,13 @@
1580
4433
  "title": {
1581
4434
  "description": "Ticket title",
1582
4435
  "name": "title",
1583
- "required": true,
1584
4436
  "hasDynamicHelp": false,
1585
4437
  "multiple": false,
1586
4438
  "type": "option"
1587
4439
  },
1588
4440
  "kind": {
1589
- "description": "Ticket kind",
4441
+ "description": "Ticket kind (bug, feature, improvement)",
1590
4442
  "name": "kind",
1591
- "default": "bug",
1592
4443
  "hasDynamicHelp": false,
1593
4444
  "multiple": false,
1594
4445
  "type": "option"
@@ -1600,6 +4451,13 @@
1600
4451
  "multiple": false,
1601
4452
  "type": "option"
1602
4453
  },
4454
+ "weight": {
4455
+ "description": "Story points (positive integer)",
4456
+ "name": "weight",
4457
+ "hasDynamicHelp": false,
4458
+ "multiple": false,
4459
+ "type": "option"
4460
+ },
1603
4461
  "step-given": {
1604
4462
  "description": "Given (precondition)",
1605
4463
  "name": "step-given",
@@ -1641,61 +4499,32 @@
1641
4499
  "hasDynamicHelp": false,
1642
4500
  "multiple": false,
1643
4501
  "type": "option"
1644
- }
1645
- },
1646
- "hasDynamicHelp": false,
1647
- "hiddenAliases": [],
1648
- "id": "tickets:create",
1649
- "pluginAlias": "@bussolabs/closeyourit-cli",
1650
- "pluginName": "@bussolabs/closeyourit-cli",
1651
- "pluginType": "core",
1652
- "strict": true,
1653
- "enableJsonFlag": true,
1654
- "isESM": false,
1655
- "relativePath": [
1656
- "dist",
1657
- "commands",
1658
- "tickets",
1659
- "create.js"
1660
- ]
1661
- },
1662
- "tickets:list": {
1663
- "aliases": [],
1664
- "args": {},
1665
- "description": "List tickets for a project",
1666
- "examples": [
1667
- "<%= config.bin %> tickets list --project acme-api",
1668
- "<%= config.bin %> tickets list -p acme-api --json"
1669
- ],
1670
- "flags": {
1671
- "json": {
1672
- "description": "Format output as json.",
1673
- "helpGroup": "GLOBAL",
1674
- "name": "json",
1675
- "allowNo": false,
1676
- "type": "boolean"
1677
4502
  },
1678
- "project": {
1679
- "char": "p",
1680
- "description": "Project id (UUID) or key",
1681
- "name": "project",
1682
- "required": true,
4503
+ "assignee-id": {
4504
+ "description": "Assignee account id",
4505
+ "name": "assignee-id",
1683
4506
  "hasDynamicHelp": false,
1684
4507
  "multiple": false,
1685
4508
  "type": "option"
1686
4509
  },
1687
- "page": {
1688
- "description": "Page number",
1689
- "name": "page",
1690
- "default": 1,
4510
+ "milestone-id": {
4511
+ "description": "Milestone id (of this project)",
4512
+ "name": "milestone-id",
1691
4513
  "hasDynamicHelp": false,
1692
4514
  "multiple": false,
1693
4515
  "type": "option"
4516
+ },
4517
+ "platform-id": {
4518
+ "description": "Affected platform id (repeatable)",
4519
+ "name": "platform-id",
4520
+ "hasDynamicHelp": false,
4521
+ "multiple": true,
4522
+ "type": "option"
1694
4523
  }
1695
4524
  },
1696
4525
  "hasDynamicHelp": false,
1697
4526
  "hiddenAliases": [],
1698
- "id": "tickets:list",
4527
+ "id": "tickets:update",
1699
4528
  "pluginAlias": "@bussolabs/closeyourit-cli",
1700
4529
  "pluginName": "@bussolabs/closeyourit-cli",
1701
4530
  "pluginType": "core",
@@ -1706,21 +4535,21 @@
1706
4535
  "dist",
1707
4536
  "commands",
1708
4537
  "tickets",
1709
- "list.js"
4538
+ "update.js"
1710
4539
  ]
1711
4540
  },
1712
- "tickets:show": {
4541
+ "tickets:vote": {
1713
4542
  "aliases": [],
1714
4543
  "args": {
1715
4544
  "id": {
1716
- "description": "Ticket id or code",
4545
+ "description": "Ticket id",
1717
4546
  "name": "id",
1718
4547
  "required": true
1719
4548
  }
1720
4549
  },
1721
- "description": "Show a single ticket",
4550
+ "description": "Upvote a ticket (idempotent)",
1722
4551
  "examples": [
1723
- "<%= config.bin %> tickets show <ticket-id> --project acme-api"
4552
+ "<%= config.bin %> tickets vote <ticket-id> --project acme-api"
1724
4553
  ],
1725
4554
  "flags": {
1726
4555
  "json": {
@@ -1742,7 +4571,7 @@
1742
4571
  },
1743
4572
  "hasDynamicHelp": false,
1744
4573
  "hiddenAliases": [],
1745
- "id": "tickets:show",
4574
+ "id": "tickets:vote",
1746
4575
  "pluginAlias": "@bussolabs/closeyourit-cli",
1747
4576
  "pluginName": "@bussolabs/closeyourit-cli",
1748
4577
  "pluginType": "core",
@@ -1753,7 +4582,7 @@
1753
4582
  "dist",
1754
4583
  "commands",
1755
4584
  "tickets",
1756
- "show.js"
4585
+ "vote.js"
1757
4586
  ]
1758
4587
  },
1759
4588
  "tokens:create": {
@@ -1950,5 +4779,5 @@
1950
4779
  ]
1951
4780
  }
1952
4781
  },
1953
- "version": "0.0.3"
4782
+ "version": "0.0.5"
1954
4783
  }