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.
- {zoomcli-0.2.4 → zoomcli-0.2.6}/.github/workflows/release.yml +99 -15
- {zoomcli-0.2.4 → zoomcli-0.2.6}/CHANGELOG.md +14 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/Cargo.lock +329 -2
- {zoomcli-0.2.4 → zoomcli-0.2.6}/Cargo.toml +2 -1
- {zoomcli-0.2.4 → zoomcli-0.2.6}/PKG-INFO +1 -1
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/api/mod.rs +88 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/meetings.rs +63 -3
- zoomcli-0.2.6/src/commands/mod.rs +576 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/recordings.rs +61 -5
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/reports.rs +62 -7
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/users.rs +40 -2
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/webinars.rs +48 -4
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/lib.rs +2 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/main.rs +177 -33
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/output.rs +29 -3
- zoomcli-0.2.6/tests/fixtures/clispec-v0.2.json +135 -0
- zoomcli-0.2.4/src/commands/mod.rs +0 -192
- {zoomcli-0.2.4 → zoomcli-0.2.6}/.github/workflows/ci.yml +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/.gitignore +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/Formula/zoom-cli.rb +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/Makefile +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/README.md +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/prek.toml +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/pyproject.toml +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/api/client.rs +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/api/types.rs +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/config.rs +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/commands/init.rs +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/config.rs +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/src/test_support.rs +0 -0
- {zoomcli-0.2.4 → zoomcli-0.2.6}/zoom_cli/__init__.py +0 -0
- {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:
|
|
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:
|
|
66
|
+
- os: [self-hosted, macOS, ARM64]
|
|
63
67
|
target: x86_64-apple-darwin
|
|
64
|
-
- os:
|
|
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:
|
|
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
|
|
79
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
310
|
-
|
|
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
|