zoomcli 0.2.2__tar.gz → 0.2.4__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.
Files changed (30) hide show
  1. {zoomcli-0.2.2 → zoomcli-0.2.4}/.github/workflows/ci.yml +15 -0
  2. {zoomcli-0.2.2 → zoomcli-0.2.4}/.github/workflows/release.yml +80 -0
  3. {zoomcli-0.2.2 → zoomcli-0.2.4}/CHANGELOG.md +10 -0
  4. {zoomcli-0.2.2 → zoomcli-0.2.4}/Cargo.lock +1 -1
  5. {zoomcli-0.2.2 → zoomcli-0.2.4}/Cargo.toml +1 -1
  6. {zoomcli-0.2.2 → zoomcli-0.2.4}/PKG-INFO +2 -1
  7. {zoomcli-0.2.2 → zoomcli-0.2.4}/README.md +1 -0
  8. zoomcli-0.2.4/prek.toml +36 -0
  9. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/init.rs +31 -7
  10. {zoomcli-0.2.2 → zoomcli-0.2.4}/.gitignore +0 -0
  11. {zoomcli-0.2.2 → zoomcli-0.2.4}/Formula/zoom-cli.rb +0 -0
  12. {zoomcli-0.2.2 → zoomcli-0.2.4}/Makefile +0 -0
  13. {zoomcli-0.2.2 → zoomcli-0.2.4}/pyproject.toml +0 -0
  14. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/api/client.rs +0 -0
  15. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/api/mod.rs +0 -0
  16. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/api/types.rs +0 -0
  17. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/config.rs +0 -0
  18. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/meetings.rs +0 -0
  19. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/mod.rs +0 -0
  20. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/recordings.rs +0 -0
  21. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/reports.rs +0 -0
  22. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/users.rs +0 -0
  23. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/commands/webinars.rs +0 -0
  24. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/config.rs +0 -0
  25. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/lib.rs +0 -0
  26. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/main.rs +0 -0
  27. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/output.rs +0 -0
  28. {zoomcli-0.2.2 → zoomcli-0.2.4}/src/test_support.rs +0 -0
  29. {zoomcli-0.2.2 → zoomcli-0.2.4}/zoom_cli/__init__.py +0 -0
  30. {zoomcli-0.2.2 → zoomcli-0.2.4}/zoom_cli/__main__.py +0 -0
@@ -39,6 +39,21 @@ jobs:
39
39
  - name: Run tests
40
40
  run: make test
41
41
 
42
+ coverage:
43
+ name: Coverage
44
+ runs-on: ubuntu-latest
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+ - uses: dtolnay/rust-toolchain@stable
48
+ - uses: taiki-e/install-action@cargo-tarpaulin
49
+ - name: Generate coverage
50
+ run: cargo tarpaulin --out xml
51
+ - name: Upload to Codecov
52
+ uses: codecov/codecov-action@v5
53
+ with:
54
+ files: cobertura.xml
55
+ token: ${{ secrets.CODECOV_TOKEN }}
56
+
42
57
  all-checks-passed:
43
58
  name: All checks passed
44
59
  runs-on: ubuntu-latest
@@ -236,3 +236,83 @@ jobs:
236
236
  echo "Dry run complete. Artifacts built but nothing published."
237
237
  echo "Archives:"
238
238
  find artifacts/release-* -type f | sort
239
+
240
+ update-homebrew:
241
+ needs: release
242
+ if: ${{ !inputs.dry_run }}
243
+ runs-on: ubuntu-latest
244
+ steps:
245
+ - uses: actions/download-artifact@v4
246
+ with:
247
+ path: /tmp/artifacts
248
+
249
+ - name: Compute SHA256 hashes
250
+ id: hashes
251
+ run: |
252
+ for target in x86_64-apple-darwin aarch64-apple-darwin x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu; do
253
+ sha=$(cat /tmp/artifacts/release-${target}/zoom-cli-${{ github.ref_name }}-${target}.tar.gz.sha256 | awk '{print $1}')
254
+ key=$(echo "${target}" | tr '-' '_')
255
+ echo "${key}=${sha}" >> "$GITHUB_OUTPUT"
256
+ done
257
+
258
+ - name: Update Homebrew formula
259
+ env:
260
+ GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
261
+ run: |
262
+ VERSION="${{ github.ref_name }}"
263
+ VERSION_NUM="${VERSION#v}"
264
+
265
+ cat > /tmp/zoom-cli.rb << 'FORMULA'
266
+ class ZoomCli < Formula
267
+ desc "CLI for Zoom"
268
+ homepage "https://github.com/rvben/zoom-cli"
269
+ version "VERSION_NUM"
270
+ license "MIT"
271
+
272
+ on_macos do
273
+ if Hardware::CPU.arm?
274
+ url "https://github.com/rvben/zoom-cli/releases/download/VERSION/zoom-cli-VERSION-aarch64-apple-darwin.tar.gz"
275
+ sha256 "SHA_AARCH64_APPLE_DARWIN"
276
+ else
277
+ url "https://github.com/rvben/zoom-cli/releases/download/VERSION/zoom-cli-VERSION-x86_64-apple-darwin.tar.gz"
278
+ sha256 "SHA_X86_64_APPLE_DARWIN"
279
+ end
280
+ end
281
+
282
+ on_linux do
283
+ if Hardware::CPU.arm?
284
+ url "https://github.com/rvben/zoom-cli/releases/download/VERSION/zoom-cli-VERSION-aarch64-unknown-linux-gnu.tar.gz"
285
+ sha256 "SHA_AARCH64_UNKNOWN_LINUX_GNU"
286
+ else
287
+ url "https://github.com/rvben/zoom-cli/releases/download/VERSION/zoom-cli-VERSION-x86_64-unknown-linux-gnu.tar.gz"
288
+ sha256 "SHA_X86_64_UNKNOWN_LINUX_GNU"
289
+ end
290
+ end
291
+
292
+ def install
293
+ bin.install "zoom"
294
+ end
295
+
296
+ test do
297
+ system "#{bin}/zoom", "--version"
298
+ end
299
+ end
300
+ FORMULA
301
+
302
+ sed -i "s/VERSION_NUM/${VERSION_NUM}/g" /tmp/zoom-cli.rb
303
+ sed -i "s/VERSION/${VERSION}/g" /tmp/zoom-cli.rb
304
+ sed -i "s/SHA_AARCH64_APPLE_DARWIN/${{ steps.hashes.outputs.aarch64_apple_darwin }}/g" /tmp/zoom-cli.rb
305
+ sed -i "s/SHA_X86_64_APPLE_DARWIN/${{ steps.hashes.outputs.x86_64_apple_darwin }}/g" /tmp/zoom-cli.rb
306
+ sed -i "s/SHA_AARCH64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.aarch64_unknown_linux_gnu }}/g" /tmp/zoom-cli.rb
307
+ sed -i "s/SHA_X86_64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.x86_64_unknown_linux_gnu }}/g" /tmp/zoom-cli.rb
308
+
309
+ # Clone tap repo, update formula, push
310
+ git clone https://x-access-token:${GH_TOKEN}@github.com/rvben/homebrew-tap.git /tmp/tap
311
+ mkdir -p /tmp/tap/Formula
312
+ cp /tmp/zoom-cli.rb /tmp/tap/Formula/zoom-cli.rb
313
+ cd /tmp/tap
314
+ git config user.name "github-actions[bot]"
315
+ git config user.email "github-actions[bot]@users.noreply.github.com"
316
+ git add Formula/zoom-cli.rb
317
+ git diff --cached --quiet || git commit -m "Update zoom-cli to ${VERSION}"
318
+ git push
@@ -6,6 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
7
 
8
8
 
9
+
10
+
11
+ ## [0.2.4](https://github.com/rvben/zoom-cli/compare/v0.2.3...v0.2.4) - 2026-04-03
12
+
13
+ ### Added
14
+
15
+ - **init**: improve OAuth URL hint and add next steps block ([cd7777d](https://github.com/rvben/zoom-cli/commit/cd7777d42bc8ed582404884438a2ce8d53dbc71c))
16
+
17
+ ## [0.2.3](https://github.com/rvben/zoom-cli/compare/v0.2.2...v0.2.3) - 2026-04-03
18
+
9
19
  ## [0.2.2](https://github.com/rvben/zoom-cli/compare/v0.2.1...v0.2.2) - 2026-04-03
10
20
 
11
21
  ## [0.2.1](https://github.com/rvben/zoom-cli/compare/v0.2.0...v0.2.1) - 2026-04-02
@@ -2219,7 +2219,7 @@ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
2219
2219
 
2220
2220
  [[package]]
2221
2221
  name = "zoom-cli"
2222
- version = "0.2.2"
2222
+ version = "0.2.4"
2223
2223
  dependencies = [
2224
2224
  "assert_cmd",
2225
2225
  "base64",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "zoom-cli"
3
- version = "0.2.2"
3
+ version = "0.2.4"
4
4
  edition = "2024"
5
5
  rust-version = "1.90"
6
6
  description = "Agent-friendly Zoom CLI with JSON output, structured exit codes, and schema introspection"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zoomcli
3
- Version: 0.2.2
3
+ Version: 0.2.4
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -23,6 +23,7 @@ Project-URL: Repository, https://github.com/rvben/zoom-cli.git
23
23
  [![Crates.io](https://img.shields.io/crates/v/zoom-cli.svg)](https://crates.io/crates/zoom-cli)
24
24
  [![PyPI](https://img.shields.io/pypi/v/zoom-cli.svg)](https://pypi.org/project/zoom-cli/)
25
25
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
26
+ [![codecov](https://codecov.io/gh/rvben/zoom-cli/graph/badge.svg)](https://codecov.io/gh/rvben/zoom-cli)
26
27
 
27
28
  # zoom-cli
28
29
 
@@ -2,6 +2,7 @@
2
2
  [![Crates.io](https://img.shields.io/crates/v/zoom-cli.svg)](https://crates.io/crates/zoom-cli)
3
3
  [![PyPI](https://img.shields.io/pypi/v/zoom-cli.svg)](https://pypi.org/project/zoom-cli/)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5
+ [![codecov](https://codecov.io/gh/rvben/zoom-cli/graph/badge.svg)](https://codecov.io/gh/rvben/zoom-cli)
5
6
 
6
7
  # zoom-cli
7
8
 
@@ -0,0 +1,36 @@
1
+ #:schema: https://www.schemastore.org/prek.json
2
+
3
+ [[repos]]
4
+ repo = "builtin"
5
+ hooks = [
6
+ { id = "trailing-whitespace" },
7
+ { id = "end-of-file-fixer" },
8
+ { id = "check-added-large-files" },
9
+ ]
10
+
11
+ [[repos]]
12
+ repo = "local"
13
+ [[repos.hooks]]
14
+ id = "cargo-fmt"
15
+ name = "cargo fmt"
16
+ entry = "cargo fmt -- --check"
17
+ language = "system"
18
+ types = ["rust"]
19
+ pass_filenames = false
20
+
21
+ [[repos.hooks]]
22
+ id = "cargo-clippy"
23
+ name = "cargo clippy"
24
+ entry = "cargo clippy -- -D warnings"
25
+ language = "system"
26
+ types = ["rust"]
27
+ pass_filenames = false
28
+
29
+ [[repos.hooks]]
30
+ id = "cargo-test"
31
+ name = "cargo test"
32
+ entry = "cargo test"
33
+ language = "system"
34
+ types = ["rust"]
35
+ pass_filenames = false
36
+ stages = ["pre-push"]
@@ -271,7 +271,12 @@ where
271
271
  " {}",
272
272
  sym_dim("Create a Server-to-Server OAuth app at:")
273
273
  );
274
- let _ = writeln!(writer, " {}\n", sym_dim(OAUTH_URL));
274
+ let _ = writeln!(
275
+ writer,
276
+ " {}",
277
+ sym_dim(&format!("{OAUTH_URL} → Server-to-Server OAuth"))
278
+ );
279
+ let _ = writeln!(writer);
275
280
  }
276
281
 
277
282
  // Prompt for credentials.
@@ -347,20 +352,39 @@ where
347
352
  &client_secret,
348
353
  )?;
349
354
 
350
- let run_cmd = if profile_name == "default" {
351
- "zoom users me".to_owned()
355
+ let pfx = if profile_name == "default" {
356
+ "zoom".to_owned()
352
357
  } else {
353
- format!("zoom --profile {} users me", profile_name)
358
+ format!("zoom --profile {}", profile_name)
354
359
  };
355
360
 
356
- let _ = writeln!(writer, "\n{SEP}");
361
+ let _ = writeln!(writer);
357
362
  let _ = writeln!(
358
363
  writer,
359
- " {} Config saved to {}",
364
+ " {} Configuration saved to {}",
360
365
  sym_ok(),
361
366
  sym_dim(&config_path.display().to_string()),
362
367
  );
363
- let _ = writeln!(writer, " Run: {}", run_cmd.bold());
368
+ let _ = writeln!(writer);
369
+ let _ = writeln!(writer, " {}:", "Next steps".bold());
370
+ let _ = writeln!(
371
+ writer,
372
+ " {}",
373
+ sym_dim(&format!(
374
+ "{pfx} meetings list # list upcoming meetings"
375
+ ))
376
+ );
377
+ let _ = writeln!(
378
+ writer,
379
+ " {}",
380
+ sym_dim(&format!("{pfx} users list # list users"))
381
+ );
382
+ let _ = writeln!(
383
+ writer,
384
+ " {}",
385
+ sym_dim(&format!("{pfx} completions zsh # shell completions"))
386
+ );
387
+ let _ = writeln!(writer);
364
388
  let _ = writer.flush();
365
389
 
366
390
  Ok(())
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