Repository navigation
gam-script-checker-v0.4.2
GAM Script Checker v0.4.2
purge events now reads as DESTRUCTIVE with or without doit. 0.4.1 reported it as a dry run without doit. GAM skips its own delete step, then moves the matched events into a temporary calendar and deletes that calendar, so the events are destroyed while GAM prints "Not Deleted: Use the doit argument". Tested on a live event.
A Cloud Identity device or device user named by its ID (gam delete device devices/..., gam wipe deviceuser ...) now reads as a change, not a dry run. As with mobile devices in 0.4.1, GAM only waits for doit when the devices are picked by query or devicesn.
gam user ... forward messages|threads is read as forwarding existing mail to another address: a dry run without doit when picked by query, a SECURITY line either way. 0.4.1 read it as turning on mail forwarding.
Changes now name what they act on: deletes user account bob@example.com, deletes group staff@example.com, changes org unit /Staff, transfers drive to <new owner>.
Switching something off no longer reads as switching it on: suspended off says it unsuspends the account, and forward off says it turns forwarding off with no SECURITY line.
Moving a user to another OU carries a note that its policies and licences can change. gam all users_ns and similar say "non-suspended users" instead of GAM's suffix. A CSV loop with matchfield or skipfield gives the row count as "before filtering".
A script or paste that makes a change with no gam info domain check above it gets a NOTE under the verdict.
The test suite gains invariant checks that run over every fixture and the blind set: no narrowed command is described as tenant-wide, every change names its target, every doit-gated command is checked in its named and query forms, and on/off pairs read differently.
Tested on Linux (Python 3.13), macOS (Python 3.9 and 3.14) and Windows (Python 3.14).
SHA256
474359d5b18b6b3c2883e869ad34ca8882f2add64b104f0d086471121ce72708 gam-script-checker-v0.4.2.zip
f70e0a952179ad3666915d2e938aed7bc9f5c1bc3b3cbcbc1a24ad9699ae460c gamcheck.py
94635da34181f137871ed32c03101c08d9c036f0aebd4f5de28ae6949d03903c verbs/gam7.json
c9eb70fb3c7f2aa08fb838679387ee19192f07e4d1af21cb52a06a1bb5b8a87a verbs/gamadv-xtd3.json
a9251216bbe39581dd2723acdfa7652ee463c067128f95a549ba586e178988ec verbs/legacy-gam.json
2d9995ae1eb5c83c9a76aa510c69bf869850adac91a5f530f2d75e1dd7d4a1c6 verbs/wiki.json