zoomcli 0.2.4__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.
Files changed (32) hide show
  1. {zoomcli-0.2.4 → zoomcli-0.2.6}/.github/workflows/release.yml +99 -15
  2. {zoomcli-0.2.4 → zoomcli-0.2.6}/CHANGELOG.md +14 -0
  3. {zoomcli-0.2.4 → zoomcli-0.2.6}/Cargo.lock +329 -2
  4. {zoomcli-0.2.4 → zoomcli-0.2.6}/Cargo.toml +2 -1
  5. {zoomcli-0.2.4 → zoomcli-0.2.6}/PKG-INFO +1 -1
  6. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/api/mod.rs +88 -0
  7. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/meetings.rs +63 -3
  8. zoomcli-0.2.6/src/commands/mod.rs +576 -0
  9. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/recordings.rs +61 -5
  10. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/reports.rs +62 -7
  11. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/users.rs +40 -2
  12. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/webinars.rs +48 -4
  13. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/lib.rs +2 -0
  14. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/main.rs +177 -33
  15. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/output.rs +29 -3
  16. zoomcli-0.2.6/tests/fixtures/clispec-v0.2.json +135 -0
  17. zoomcli-0.2.4/src/commands/mod.rs +0 -192
  18. {zoomcli-0.2.4 → zoomcli-0.2.6}/.github/workflows/ci.yml +0 -0
  19. {zoomcli-0.2.4 → zoomcli-0.2.6}/.gitignore +0 -0
  20. {zoomcli-0.2.4 → zoomcli-0.2.6}/Formula/zoom-cli.rb +0 -0
  21. {zoomcli-0.2.4 → zoomcli-0.2.6}/Makefile +0 -0
  22. {zoomcli-0.2.4 → zoomcli-0.2.6}/README.md +0 -0
  23. {zoomcli-0.2.4 → zoomcli-0.2.6}/prek.toml +0 -0
  24. {zoomcli-0.2.4 → zoomcli-0.2.6}/pyproject.toml +0 -0
  25. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/api/client.rs +0 -0
  26. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/api/types.rs +0 -0
  27. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/config.rs +0 -0
  28. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/init.rs +0 -0
  29. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/config.rs +0 -0
  30. {zoomcli-0.2.4 → zoomcli-0.2.6}/src/test_support.rs +0 -0
  31. {zoomcli-0.2.4 → zoomcli-0.2.6}/zoom_cli/__init__.py +0 -0
  32. {zoomcli-0.2.4 → zoomcli-0.2.6}/zoom_cli/__main__.py +0 -0
@@ -50,48 +50,114 @@ jobs:
50
50
  build:
51
51
  name: Build ${{ matrix.target }}
52
52
  needs: test
53
+ timeout-minutes: 30
54
+ # Guard: self-hosted runners only execute on trusted events (tag push,
55
+ # workflow_dispatch). Fork PRs must never dispatch jobs to self-hosted.
56
+ if: github.event_name != 'pull_request'
53
57
  strategy:
54
58
  matrix:
55
59
  include:
56
60
  - os: ubuntu-latest
57
61
  target: x86_64-unknown-linux-gnu
58
- - os: ubuntu-latest
62
+ - os: [self-hosted, Linux, ARM64]
59
63
  target: aarch64-unknown-linux-gnu
60
64
  - os: windows-latest
61
65
  target: x86_64-pc-windows-msvc
62
- - os: macos-latest
66
+ - os: [self-hosted, macOS, ARM64]
63
67
  target: x86_64-apple-darwin
64
- - os: macos-latest
68
+ - os: [self-hosted, macOS, ARM64]
65
69
  target: aarch64-apple-darwin
66
70
  runs-on: ${{ matrix.os }}
67
71
  steps:
68
72
  - uses: actions/checkout@v4
73
+ with:
74
+ # Preserve target/ between runs on self-hosted runners for cargo
75
+ # incremental rebuild. GitHub-hosted runners start clean each job
76
+ # regardless of this setting, so this only affects self-hosted.
77
+ clean: false
69
78
 
70
79
  - uses: dtolnay/rust-toolchain@stable
71
80
  with:
72
81
  targets: ${{ matrix.target }}
73
82
 
74
- - name: Install cross-compilation tools
83
+ - name: Prepare cargo cache dirs (arm64 linux)
75
84
  if: matrix.target == 'aarch64-unknown-linux-gnu'
85
+ run: mkdir -p "${RUNNER_TOOL_CACHE}/cargo-cache/registry" "${RUNNER_TOOL_CACHE}/cargo-cache/git"
86
+
87
+ - name: Clean stale dist
88
+ # Keep dist/ fresh each run so previous builds cannot leak artifacts
89
+ # into the upload. Self-hosted runners do not clean automatically.
90
+ # On the arm64 linux runner, maturin-action runs as root inside the
91
+ # manylinux container and leaves root-owned files in dist/; clean
92
+ # via docker so the unprivileged runner user can proceed.
93
+ shell: bash
94
+ run: |
95
+ if [[ "${{ matrix.target }}" == "aarch64-unknown-linux-gnu" ]]; then
96
+ docker run --rm -v "${GITHUB_WORKSPACE}:/io" alpine rm -rf /io/dist /io/target/wheels
97
+ else
98
+ rm -rf dist target/wheels
99
+ fi
100
+
101
+ - name: Install cross-compilation tools
102
+ # Only needed on GitHub-hosted linux where the arm64 toolchain must
103
+ # be cross-installed. The self-hosted arm64 runner is native.
104
+ if: matrix.target == 'aarch64-unknown-linux-gnu' && runner.arch != 'ARM64'
76
105
  run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu
77
106
 
78
- - name: Install maturin
79
- run: pip install maturin
107
+ - name: Install uv
108
+ if: matrix.target != 'aarch64-unknown-linux-gnu'
109
+ uses: astral-sh/setup-uv@v6
110
+
111
+ - name: Install maturin and zig
112
+ # maturin-action provides its own maturin inside the manylinux
113
+ # container for the arm64 linux build, so skip the host install
114
+ # on the self-hosted runner.
115
+ if: matrix.target != 'aarch64-unknown-linux-gnu'
116
+ shell: bash
117
+ run: |
118
+ uv venv "${RUNNER_TEMP}/build-venv"
119
+ VENV_BIN="${RUNNER_TEMP}/build-venv/bin"
120
+ [ -d "$VENV_BIN" ] || VENV_BIN="${RUNNER_TEMP}/build-venv/Scripts"
121
+ uv pip install --python "${RUNNER_TEMP}/build-venv" maturin ziglang
122
+ echo "$VENV_BIN" >> "$GITHUB_PATH"
123
+
124
+ - name: Build wheel (arm64 linux via maturin-action)
125
+ if: matrix.target == 'aarch64-unknown-linux-gnu'
126
+ uses: PyO3/maturin-action@v1
127
+ with:
128
+ target: aarch64-unknown-linux-gnu
129
+ args: --release --out dist
130
+ manylinux: manylinux_2_28
131
+ # Mount persistent cargo cache into the manylinux container so
132
+ # dependency downloads survive between jobs on the self-hosted
133
+ # runner.
134
+ docker-options: -v ${{ runner.tool_cache }}/cargo-cache/registry:/root/.cargo/registry -v ${{ runner.tool_cache }}/cargo-cache/git:/root/.cargo/git
80
135
 
81
136
  - name: Build wheel
137
+ if: matrix.target != 'aarch64-unknown-linux-gnu'
82
138
  shell: bash
83
139
  run: |
84
140
  case "${{ matrix.target }}" in
85
141
  *-gnu)
86
- pip install ziglang
87
- maturin build --release --target ${{ matrix.target }} --compatibility manylinux_2_28 --zig
142
+ maturin build --release --target ${{ matrix.target }} --compatibility manylinux_2_28 --zig --out dist
88
143
  ;;
89
144
  *)
90
- maturin build --release --target ${{ matrix.target }}
145
+ maturin build --release --target ${{ matrix.target }} --out dist
91
146
  ;;
92
147
  esac
93
148
 
149
+ - name: Build binary (arm64 linux via cargo-zigbuild)
150
+ # On the Pi runner build natively with cargo-zigbuild targeting
151
+ # glibc 2.28 for wide distro compatibility. Use a separate target
152
+ # directory so host cargo does not conflict with root-owned files
153
+ # left behind by the maturin-action container build in target/.
154
+ if: matrix.target == 'aarch64-unknown-linux-gnu'
155
+ env:
156
+ CARGO_TARGET_DIR: target-host
157
+ run: cargo zigbuild --release --target aarch64-unknown-linux-gnu.2.28
158
+
94
159
  - name: Build binary
160
+ if: matrix.target != 'aarch64-unknown-linux-gnu'
95
161
  env:
96
162
  CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
97
163
  run: cargo build --release --target ${{ matrix.target }}
@@ -121,7 +187,12 @@ jobs:
121
187
  cd ..
122
188
  powershell -command "Get-FileHash -Path '${ARCHIVE_NAME}.zip' -Algorithm SHA256 | Select-Object -ExpandProperty Hash" > "${ARCHIVE_NAME}.zip.sha256"
123
189
  else
124
- cp "target/${{ matrix.target }}/release/zoom" release-package/zoom
190
+ if [[ "${{ matrix.target }}" == "aarch64-unknown-linux-gnu" ]]; then
191
+ BIN_PATH="target-host/aarch64-unknown-linux-gnu/release/zoom"
192
+ else
193
+ BIN_PATH="target/${{ matrix.target }}/release/zoom"
194
+ fi
195
+ cp "$BIN_PATH" release-package/zoom
125
196
  tar -czf "${ARCHIVE_NAME}.tar.gz" -C release-package zoom
126
197
 
127
198
  if [[ "${{ runner.os }}" == "macOS" ]]; then
@@ -136,7 +207,7 @@ jobs:
136
207
  - name: Upload wheel
137
208
  uses: actions/upload-artifact@v4
138
209
  with:
139
- path: target/wheels/*
210
+ path: dist/*.whl
140
211
  name: wheel-${{ matrix.target }}
141
212
 
142
213
  - name: Upload release archives
@@ -154,8 +225,14 @@ jobs:
154
225
  steps:
155
226
  - uses: actions/checkout@v4
156
227
 
228
+ - uses: astral-sh/setup-uv@v6
229
+
157
230
  - name: Install maturin
158
- run: pip install maturin
231
+ shell: bash
232
+ run: |
233
+ uv venv "${RUNNER_TEMP}/build-venv"
234
+ uv pip install --python "${RUNNER_TEMP}/build-venv/bin/python" maturin
235
+ echo "${RUNNER_TEMP}/build-venv/bin" >> "$GITHUB_PATH"
159
236
 
160
237
  - name: Build sdist
161
238
  run: maturin sdist
@@ -257,7 +334,7 @@ jobs:
257
334
 
258
335
  - name: Update Homebrew formula
259
336
  env:
260
- GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
337
+ HOMEBREW_TAP_DEPLOY_KEY: ${{ secrets.HOMEBREW_TAP_DEPLOY_KEY }}
261
338
  run: |
262
339
  VERSION="${{ github.ref_name }}"
263
340
  VERSION_NUM="${VERSION#v}"
@@ -306,8 +383,15 @@ jobs:
306
383
  sed -i "s/SHA_AARCH64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.aarch64_unknown_linux_gnu }}/g" /tmp/zoom-cli.rb
307
384
  sed -i "s/SHA_X86_64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.x86_64_unknown_linux_gnu }}/g" /tmp/zoom-cli.rb
308
385
 
309
- # Clone tap repo, update formula, push
310
- git clone https://x-access-token:${GH_TOKEN}@github.com/rvben/homebrew-tap.git /tmp/tap
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
311
395
  mkdir -p /tmp/tap/Formula
312
396
  cp /tmp/zoom-cli.rb /tmp/tap/Formula/zoom-cli.rb
313
397
  cd /tmp/tap
@@ -8,6 +8,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
8
8
 
9
9
 
10
10
 
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
+
19
+ ## [0.2.5](https://github.com/rvben/zoom-cli/compare/v0.2.4...v0.2.5) - 2026-06-11
20
+
21
+ ### Added
22
+
23
+ - make zoom CLI fully compliant with The CLI Spec v0.2 (24/24) ([ffedf5f](https://github.com/rvben/zoom-cli/commit/ffedf5f9c814d9e79c943fae64ee6983eb14ea80))
24
+
11
25
  ## [0.2.4](https://github.com/rvben/zoom-cli/compare/v0.2.3...v0.2.4) - 2026-04-03
12
26
 
13
27
  ### Added