zoomcli 0.2.5__tar.gz → 0.2.6__tar.gz
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.
- {zoomcli-0.2.5 → zoomcli-0.2.6}/.github/workflows/release.yml +10 -3
- {zoomcli-0.2.5 → zoomcli-0.2.6}/CHANGELOG.md +7 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/Cargo.lock +1 -1
- {zoomcli-0.2.5 → zoomcli-0.2.6}/Cargo.toml +1 -1
- {zoomcli-0.2.5 → zoomcli-0.2.6}/PKG-INFO +1 -1
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/mod.rs +54 -1
- {zoomcli-0.2.5 → zoomcli-0.2.6}/.github/workflows/ci.yml +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/.gitignore +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/Formula/zoom-cli.rb +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/Makefile +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/README.md +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/prek.toml +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/pyproject.toml +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/api/client.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/api/mod.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/api/types.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/config.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/init.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/meetings.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/recordings.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/reports.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/users.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/commands/webinars.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/config.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/lib.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/main.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/output.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/src/test_support.rs +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/tests/fixtures/clispec-v0.2.json +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/zoom_cli/__init__.py +0 -0
- {zoomcli-0.2.5 → zoomcli-0.2.6}/zoom_cli/__main__.py +0 -0
|
@@ -334,7 +334,7 @@ jobs:
|
|
|
334
334
|
|
|
335
335
|
- name: Update Homebrew formula
|
|
336
336
|
env:
|
|
337
|
-
|
|
337
|
+
HOMEBREW_TAP_DEPLOY_KEY: ${{ secrets.HOMEBREW_TAP_DEPLOY_KEY }}
|
|
338
338
|
run: |
|
|
339
339
|
VERSION="${{ github.ref_name }}"
|
|
340
340
|
VERSION_NUM="${VERSION#v}"
|
|
@@ -383,8 +383,15 @@ jobs:
|
|
|
383
383
|
sed -i "s/SHA_AARCH64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.aarch64_unknown_linux_gnu }}/g" /tmp/zoom-cli.rb
|
|
384
384
|
sed -i "s/SHA_X86_64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.x86_64_unknown_linux_gnu }}/g" /tmp/zoom-cli.rb
|
|
385
385
|
|
|
386
|
-
#
|
|
387
|
-
|
|
386
|
+
# Authenticate to the tap with a write deploy key scoped to
|
|
387
|
+
# rvben/homebrew-tap. The key does not expire, so cross-repo pushes
|
|
388
|
+
# keep working without periodic token rotation.
|
|
389
|
+
mkdir -p ~/.ssh
|
|
390
|
+
echo "$HOMEBREW_TAP_DEPLOY_KEY" > ~/.ssh/id_ed25519
|
|
391
|
+
chmod 600 ~/.ssh/id_ed25519
|
|
392
|
+
ssh-keyscan -t ed25519 github.com >> ~/.ssh/known_hosts 2>/dev/null
|
|
393
|
+
|
|
394
|
+
git clone git@github.com:rvben/homebrew-tap.git /tmp/tap
|
|
388
395
|
mkdir -p /tmp/tap/Formula
|
|
389
396
|
cp /tmp/zoom-cli.rb /tmp/tap/Formula/zoom-cli.rb
|
|
390
397
|
cd /tmp/tap
|
|
@@ -9,6 +9,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
|
|
13
|
+
## [0.2.6](https://github.com/rvben/zoom-cli/compare/v0.2.5...v0.2.6) - 2026-06-20
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **schema**: fill missing output_fields for all commands ([6f4df02](https://github.com/rvben/zoom-cli/commit/6f4df025ad2d2480350a1d12649da90cf03ccdbc))
|
|
18
|
+
|
|
12
19
|
## [0.2.5](https://github.com/rvben/zoom-cli/compare/v0.2.4...v0.2.5) - 2026-06-11
|
|
13
20
|
|
|
14
21
|
### Added
|
|
@@ -95,6 +95,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
95
95
|
"name": "meetings update",
|
|
96
96
|
"description": "Update a meeting",
|
|
97
97
|
"mutating": true,
|
|
98
|
+
"output_fields": [
|
|
99
|
+
{"name": "updated", "type": "boolean", "description": "Always true on success"},
|
|
100
|
+
{"name": "id", "type": "integer", "description": "Meeting ID that was updated"}
|
|
101
|
+
],
|
|
98
102
|
"args": [
|
|
99
103
|
{"name": "id", "type": "integer", "required": true, "description": "Meeting ID"},
|
|
100
104
|
{"name": "--topic", "type": "string", "description": "New topic"},
|
|
@@ -106,6 +110,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
106
110
|
"name": "meetings delete",
|
|
107
111
|
"description": "Delete a meeting",
|
|
108
112
|
"mutating": true,
|
|
113
|
+
"output_fields": [
|
|
114
|
+
{"name": "deleted", "type": "boolean", "description": "Always true on success"},
|
|
115
|
+
{"name": "id", "type": "integer", "description": "Meeting ID that was deleted"}
|
|
116
|
+
],
|
|
109
117
|
"args": [
|
|
110
118
|
{"name": "id", "type": "integer", "required": true, "description": "Meeting ID"},
|
|
111
119
|
{"name": "--yes", "type": "boolean", "default": false, "description": "Skip confirmation prompt"}
|
|
@@ -115,6 +123,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
115
123
|
"name": "meetings end",
|
|
116
124
|
"description": "End a live meeting",
|
|
117
125
|
"mutating": true,
|
|
126
|
+
"output_fields": [
|
|
127
|
+
{"name": "ended", "type": "boolean", "description": "Always true on success"},
|
|
128
|
+
{"name": "id", "type": "integer", "description": "Meeting ID that was ended"}
|
|
129
|
+
],
|
|
118
130
|
"args": [
|
|
119
131
|
{"name": "id", "type": "integer", "required": true, "description": "Meeting ID"}
|
|
120
132
|
]
|
|
@@ -186,6 +198,11 @@ fn schema_doc() -> serde_json::Value {
|
|
|
186
198
|
"name": "recordings download",
|
|
187
199
|
"description": "Download recording files for a meeting",
|
|
188
200
|
"mutating": false,
|
|
201
|
+
"output_fields": [
|
|
202
|
+
{"name": "downloaded", "type": "integer", "description": "Number of files successfully downloaded"},
|
|
203
|
+
{"name": "meeting_id", "type": "string", "description": "Meeting ID or UUID that was downloaded"},
|
|
204
|
+
{"name": "out_dir", "type": "string", "description": "Directory files were written to"}
|
|
205
|
+
],
|
|
189
206
|
"args": [
|
|
190
207
|
{"name": "meeting_id", "type": "string", "required": true, "description": "Meeting ID or UUID"},
|
|
191
208
|
{"name": "--out", "type": "path", "default": ".", "description": "Output directory"}
|
|
@@ -195,6 +212,11 @@ fn schema_doc() -> serde_json::Value {
|
|
|
195
212
|
"name": "recordings delete",
|
|
196
213
|
"description": "Delete all cloud recordings for a meeting",
|
|
197
214
|
"mutating": true,
|
|
215
|
+
"output_fields": [
|
|
216
|
+
{"name": "deleted", "type": "boolean", "description": "Always true on success"},
|
|
217
|
+
{"name": "meeting_id", "type": "string", "description": "Meeting ID or UUID whose recordings were deleted"},
|
|
218
|
+
{"name": "trash", "type": "boolean", "description": "True if moved to trash, false if permanently deleted"}
|
|
219
|
+
],
|
|
198
220
|
"args": [
|
|
199
221
|
{"name": "meeting_id", "type": "string", "required": true, "description": "Meeting ID or UUID"},
|
|
200
222
|
{"name": "--permanent", "type": "boolean", "default": false, "description": "Permanently delete instead of moving to trash"},
|
|
@@ -205,6 +227,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
205
227
|
"name": "recordings start",
|
|
206
228
|
"description": "Start cloud recording for a live meeting",
|
|
207
229
|
"mutating": true,
|
|
230
|
+
"output_fields": [
|
|
231
|
+
{"name": "action", "type": "string", "description": "The action performed (always 'start')"},
|
|
232
|
+
{"name": "meeting_id", "type": "integer", "description": "Numeric meeting ID the action was applied to"}
|
|
233
|
+
],
|
|
208
234
|
"args": [
|
|
209
235
|
{"name": "meeting_id", "type": "integer", "required": true, "description": "Numeric meeting ID of the live meeting"}
|
|
210
236
|
]
|
|
@@ -213,6 +239,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
213
239
|
"name": "recordings stop",
|
|
214
240
|
"description": "Stop cloud recording for a live meeting",
|
|
215
241
|
"mutating": true,
|
|
242
|
+
"output_fields": [
|
|
243
|
+
{"name": "action", "type": "string", "description": "The action performed (always 'stop')"},
|
|
244
|
+
{"name": "meeting_id", "type": "integer", "description": "Numeric meeting ID the action was applied to"}
|
|
245
|
+
],
|
|
216
246
|
"args": [
|
|
217
247
|
{"name": "meeting_id", "type": "integer", "required": true, "description": "Numeric meeting ID of the live meeting"}
|
|
218
248
|
]
|
|
@@ -221,6 +251,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
221
251
|
"name": "recordings pause",
|
|
222
252
|
"description": "Pause cloud recording for a live meeting",
|
|
223
253
|
"mutating": true,
|
|
254
|
+
"output_fields": [
|
|
255
|
+
{"name": "action", "type": "string", "description": "The action performed (always 'pause')"},
|
|
256
|
+
{"name": "meeting_id", "type": "integer", "description": "Numeric meeting ID the action was applied to"}
|
|
257
|
+
],
|
|
224
258
|
"args": [
|
|
225
259
|
{"name": "meeting_id", "type": "integer", "required": true, "description": "Numeric meeting ID of the live meeting"}
|
|
226
260
|
]
|
|
@@ -229,6 +263,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
229
263
|
"name": "recordings resume",
|
|
230
264
|
"description": "Resume cloud recording for a live meeting",
|
|
231
265
|
"mutating": true,
|
|
266
|
+
"output_fields": [
|
|
267
|
+
{"name": "action", "type": "string", "description": "The action performed (always 'resume')"},
|
|
268
|
+
{"name": "meeting_id", "type": "integer", "description": "Numeric meeting ID the action was applied to"}
|
|
269
|
+
],
|
|
232
270
|
"args": [
|
|
233
271
|
{"name": "meeting_id", "type": "integer", "required": true, "description": "Numeric meeting ID of the live meeting"}
|
|
234
272
|
]
|
|
@@ -237,6 +275,10 @@ fn schema_doc() -> serde_json::Value {
|
|
|
237
275
|
"name": "recordings transcript",
|
|
238
276
|
"description": "Download transcript files (VTT/chat) for a meeting",
|
|
239
277
|
"mutating": false,
|
|
278
|
+
"output_fields": [
|
|
279
|
+
{"name": "files_downloaded", "type": "integer", "description": "Number of transcript/chat files downloaded"},
|
|
280
|
+
{"name": "paths", "type": "array", "description": "Absolute paths of the downloaded files"}
|
|
281
|
+
],
|
|
240
282
|
"args": [
|
|
241
283
|
{"name": "meeting_id", "type": "string", "required": true, "description": "Meeting ID or UUID"},
|
|
242
284
|
{"name": "--out", "type": "path", "default": ".", "description": "Output directory"}
|
|
@@ -315,6 +357,7 @@ fn schema_doc() -> serde_json::Value {
|
|
|
315
357
|
"name": "users deactivate",
|
|
316
358
|
"description": "Deactivate a user",
|
|
317
359
|
"mutating": true,
|
|
360
|
+
"output_fields": [],
|
|
318
361
|
"args": [
|
|
319
362
|
{"name": "id_or_email", "type": "string", "required": true, "description": "User ID or email"}
|
|
320
363
|
]
|
|
@@ -323,6 +366,7 @@ fn schema_doc() -> serde_json::Value {
|
|
|
323
366
|
"name": "users activate",
|
|
324
367
|
"description": "Activate (reactivate) a user",
|
|
325
368
|
"mutating": true,
|
|
369
|
+
"output_fields": [],
|
|
326
370
|
"args": [
|
|
327
371
|
{"name": "id_or_email", "type": "string", "required": true, "description": "User ID or email"}
|
|
328
372
|
]
|
|
@@ -414,6 +458,7 @@ fn schema_doc() -> serde_json::Value {
|
|
|
414
458
|
"name": "config delete",
|
|
415
459
|
"description": "Delete a profile from the config file",
|
|
416
460
|
"mutating": true,
|
|
461
|
+
"output_fields": [],
|
|
417
462
|
"args": [
|
|
418
463
|
{"name": "profile", "type": "string", "required": true, "description": "Profile name to delete"},
|
|
419
464
|
{"name": "--force", "type": "boolean", "default": false, "description": "Skip confirmation prompt"}
|
|
@@ -421,8 +466,16 @@ fn schema_doc() -> serde_json::Value {
|
|
|
421
466
|
},
|
|
422
467
|
{
|
|
423
468
|
"name": "init",
|
|
424
|
-
"description": "Set up credentials interactively",
|
|
469
|
+
"description": "Set up credentials interactively. When stdout is not a TTY, prints JSON setup instructions instead.",
|
|
425
470
|
"mutating": true,
|
|
471
|
+
"output_fields": [
|
|
472
|
+
{"name": "configPath", "type": "string", "description": "Absolute path to the config file that will be written"},
|
|
473
|
+
{"name": "tokenInstructions", "type": "object", "description": "Step-by-step instructions for creating a Server-to-Server OAuth app"},
|
|
474
|
+
{"name": "requiredCredentials", "type": "array", "description": "Credential keys required in the config file: account_id, client_id, client_secret"},
|
|
475
|
+
{"name": "requiredScopes", "type": "array", "description": "Zoom OAuth scopes that must be granted to the app"},
|
|
476
|
+
{"name": "optionalScopes", "type": "array", "description": "Zoom OAuth scopes that unlock additional commands"},
|
|
477
|
+
{"name": "example", "type": "object", "description": "Example config file path and format"}
|
|
478
|
+
],
|
|
426
479
|
"args": [
|
|
427
480
|
{"name": "--profile", "type": "string", "description": "Profile name to create or update"}
|
|
428
481
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|