gam7 7.20.3__tar.gz → 7.28.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 (329) hide show
  1. {gam7-7.20.3 → gam7-7.28.4}/.github/workflows/build.yml +99 -48
  2. {gam7-7.20.3 → gam7-7.28.4}/.github/workflows/get-cacerts.yml +1 -1
  3. {gam7-7.20.3 → gam7-7.28.4}/.github/workflows/pushwiki.yml +1 -1
  4. {gam7-7.20.3 → gam7-7.28.4}/.github/workflows/pypi.yml +1 -1
  5. {gam7-7.20.3 → gam7-7.28.4}/PKG-INFO +10 -4
  6. {gam7-7.20.3 → gam7-7.28.4}/README.md +5 -0
  7. {gam7-7.20.3 → gam7-7.28.4}/pyproject.toml +4 -3
  8. {gam7-7.20.3 → gam7-7.28.4}/src/GamCommands.txt +203 -151
  9. {gam7-7.20.3 → gam7-7.28.4}/src/GamUpdate.txt +310 -0
  10. {gam7-7.20.3 → gam7-7.28.4}/src/gam/__init__.py +1301 -673
  11. {gam7-7.20.3 → gam7-7.28.4}/src/gam/__main__.py +6 -1
  12. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glapi.py +35 -19
  13. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glcfg.py +12 -0
  14. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glclargs.py +288 -5
  15. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glentity.py +11 -3
  16. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glglobals.py +3 -0
  17. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glmsgs.py +3 -1
  18. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glverlibs.py +1 -1
  19. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/yubikey.py +13 -12
  20. {gam7-7.20.3 → gam7-7.28.4}/src/gam-install.sh +0 -5
  21. {gam7-7.20.3 → gam7-7.28.4}/src/gam.spec +1 -2
  22. gam7-7.28.4/src/tools/hooks/hook-googleapiclient.model.py +21 -0
  23. gam7-7.28.4/src/tools/hooks/hook-httplib2.py +19 -0
  24. {gam7-7.20.3 → gam7-7.28.4}/src/tools/ssd.mjs +7 -4
  25. {gam7-7.20.3 → gam7-7.28.4}/wiki/Administrators.md +16 -7
  26. {gam7-7.20.3 → gam7-7.28.4}/wiki/Aliases.md +3 -1
  27. {gam7-7.20.3 → gam7-7.28.4}/wiki/Authorization.md +2 -2
  28. {gam7-7.20.3 → gam7-7.28.4}/wiki/Basic-Items.md +4 -0
  29. {gam7-7.20.3 → gam7-7.28.4}/wiki/Bulk-Processing.md +6 -0
  30. {gam7-7.20.3 → gam7-7.28.4}/wiki/Business-Account-Management.md +0 -2
  31. {gam7-7.20.3 → gam7-7.28.4}/wiki/Calendars-Events.md +7 -3
  32. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chat-Bot-Setup-Use.md +12 -2
  33. gam7-7.28.4/wiki/Chrome-Device-Counts.md +65 -0
  34. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Installed-Apps.md +3 -3
  35. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Policies.md +11 -1
  36. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Profile-Management.md +0 -2
  37. {gam7-7.20.3 → gam7-7.28.4}/wiki/ChromeOS-Devices.md +4 -2
  38. {gam7-7.20.3 → gam7-7.28.4}/wiki/Classroom-Courses.md +17 -2
  39. {gam7-7.20.3 → gam7-7.28.4}/wiki/Classroom-Membership.md +3 -1
  40. {gam7-7.20.3 → gam7-7.28.4}/wiki/Classroom-StudentGroups.md +3 -1
  41. {gam7-7.20.3 → gam7-7.28.4}/wiki/Cloud-Identity-Devices.md +6 -2
  42. {gam7-7.20.3 → gam7-7.28.4}/wiki/Cloud-Identity-Groups.md +5 -12
  43. gam7-7.28.4/wiki/Cloud-Identity-Policies.md +137 -0
  44. {gam7-7.20.3 → gam7-7.28.4}/wiki/Collections-of-Users.md +135 -44
  45. {gam7-7.20.3 → gam7-7.28.4}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +20 -0
  46. {gam7-7.20.3 → gam7-7.28.4}/wiki/Command-Line-Parsing.md +23 -0
  47. {gam7-7.20.3 → gam7-7.28.4}/wiki/Context-Aware-Access-Levels.md +0 -4
  48. {gam7-7.20.3 → gam7-7.28.4}/wiki/Domain-SharedContacts.md +1 -1
  49. {gam7-7.20.3 → gam7-7.28.4}/wiki/Domains.md +18 -0
  50. {gam7-7.20.3 → gam7-7.28.4}/wiki/Downloads-Installs.md +15 -5
  51. gam7-7.28.4/wiki/GAM-Release-Process.md +21 -0
  52. gam7-7.20.3/wiki/l-GAM7-FAQ.md → gam7-7.28.4/wiki/GAM7-FAQ.md +3 -3
  53. {gam7-7.20.3 → gam7-7.28.4}/wiki/GAM7-on-Android-Devices.md +1 -1
  54. {gam7-7.20.3 → gam7-7.28.4}/wiki/GAM7-on-Chrome-OS-Devices.md +1 -1
  55. {gam7-7.20.3 → gam7-7.28.4}/wiki/GamUpdates.md +310 -3
  56. {gam7-7.20.3 → gam7-7.28.4}/wiki/Google-Data-Transfers.md +1 -1
  57. {gam7-7.20.3 → gam7-7.28.4}/wiki/Groups-Membership.md +44 -36
  58. {gam7-7.20.3 → gam7-7.28.4}/wiki/Groups.md +4 -2
  59. {gam7-7.20.3 → gam7-7.28.4}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +6 -6
  60. {gam7-7.20.3 → gam7-7.28.4}/wiki/Licenses.md +1 -5
  61. {gam7-7.20.3 → gam7-7.28.4}/wiki/List-Items.md +2 -0
  62. {gam7-7.20.3 → gam7-7.28.4}/wiki/Mobile-Devices.md +3 -1
  63. {gam7-7.20.3 → gam7-7.28.4}/wiki/Organizational-Units.md +10 -4
  64. {gam7-7.20.3 → gam7-7.28.4}/wiki/Reports.md +136 -103
  65. {gam7-7.20.3 → gam7-7.28.4}/wiki/Reseller.md +0 -15
  66. {gam7-7.20.3 → gam7-7.28.4}/wiki/Resources.md +3 -1
  67. {gam7-7.20.3 → gam7-7.28.4}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +2 -0
  68. {gam7-7.20.3 → gam7-7.28.4}/wiki/Scripts.md +2 -2
  69. {gam7-7.20.3 → gam7-7.28.4}/wiki/Shared-Drives.md +8 -2
  70. {gam7-7.20.3 → gam7-7.28.4}/wiki/Todrive.md +12 -10
  71. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Calendars-Events.md +6 -3
  72. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Chat.md +40 -30
  73. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Contacts.md +2 -11
  74. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Cleanup.md +1 -11
  75. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Copy-Move.md +51 -11
  76. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Files-Display.md +6 -9
  77. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Files-Manage.md +12 -9
  78. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Permissions.md +156 -26
  79. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Shortcuts.md +2 -0
  80. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Delegates.md +69 -0
  81. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Labels.md +1 -0
  82. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Meet.md +0 -2
  83. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-People-Contacts-Profiles.md +10 -17
  84. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Shared-Drives.md +6 -4
  85. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Tasks.md +3 -3
  86. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users.md +34 -32
  87. {gam7-7.20.3 → gam7-7.28.4}/wiki/Using-GAM7-with-a-YubiKey.md +3 -8
  88. {gam7-7.20.3 → gam7-7.28.4}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +1 -1
  89. gam7-7.28.4/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +290 -0
  90. {gam7-7.20.3 → gam7-7.28.4}/wiki/Vault-Takeout.md +193 -60
  91. {gam7-7.20.3 → gam7-7.28.4}/wiki/Version-and-Help.md +27 -23
  92. {gam7-7.20.3 → gam7-7.28.4}/wiki/_Sidebar.md +4 -27
  93. gam7-7.28.4/wiki/foo.lst +1 -0
  94. {gam7-7.20.3 → gam7-7.28.4}/wiki/gam.cfg.md +16 -1
  95. gam7-7.20.3/.pre-commit-config.yaml +0 -32
  96. gam7-7.20.3/src/gam/cacerts.pem +0 -747
  97. gam7-7.20.3/src/gam/googleapiclient/__init__.py +0 -27
  98. gam7-7.20.3/src/gam/googleapiclient/_auth.py +0 -167
  99. gam7-7.20.3/src/gam/googleapiclient/_helpers.py +0 -207
  100. gam7-7.20.3/src/gam/googleapiclient/channel.py +0 -315
  101. gam7-7.20.3/src/gam/googleapiclient/discovery.py +0 -1662
  102. gam7-7.20.3/src/gam/googleapiclient/discovery_cache/__init__.py +0 -78
  103. gam7-7.20.3/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -55
  104. gam7-7.20.3/src/gam/googleapiclient/discovery_cache/base.py +0 -46
  105. gam7-7.20.3/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -145
  106. gam7-7.20.3/src/gam/googleapiclient/errors.py +0 -197
  107. gam7-7.20.3/src/gam/googleapiclient/http.py +0 -1962
  108. gam7-7.20.3/src/gam/googleapiclient/mimeparse.py +0 -183
  109. gam7-7.20.3/src/gam/googleapiclient/model.py +0 -429
  110. gam7-7.20.3/src/gam/googleapiclient/schema.py +0 -317
  111. gam7-7.20.3/src/gam/googleapiclient/version.py +0 -15
  112. gam7-7.20.3/src/gam/iso8601/__init__.py +0 -28
  113. gam7-7.20.3/src/gam/iso8601/iso8601.py +0 -160
  114. gam7-7.20.3/src/gam/six.py +0 -982
  115. gam7-7.20.3/src/requirements-dev.txt +0 -7
  116. gam7-7.20.3/wiki/Cloud-Identity-Policies.md +0 -416
  117. gam7-7.20.3/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -54
  118. gam7-7.20.3/wiki/l-Use-a-Yubikey.md +0 -49
  119. {gam7-7.20.3 → gam7-7.28.4}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  120. {gam7-7.20.3 → gam7-7.28.4}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  121. {gam7-7.20.3 → gam7-7.28.4}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  122. {gam7-7.20.3 → gam7-7.28.4}/.github/ISSUE_TEMPLATE.txt +0 -0
  123. {gam7-7.20.3 → gam7-7.28.4}/.github/actions/decrypt.sh +0 -0
  124. {gam7-7.20.3 → gam7-7.28.4}/.github/actions/entitlements.plist +0 -0
  125. {gam7-7.20.3 → gam7-7.28.4}/.github/actions/package_exclusions.txt +0 -0
  126. {gam7-7.20.3 → gam7-7.28.4}/.github/stale.yml +0 -0
  127. {gam7-7.20.3 → gam7-7.28.4}/.github/workflows/codeql-analysis.yml +0 -0
  128. {gam7-7.20.3 → gam7-7.28.4}/LICENSE +0 -0
  129. {gam7-7.20.3 → gam7-7.28.4}/src/.gitignore +0 -0
  130. {gam7-7.20.3 → gam7-7.28.4}/src/LICENSE +0 -0
  131. {gam7-7.20.3 → gam7-7.28.4}/src/README.md +0 -0
  132. {gam7-7.20.3 → gam7-7.28.4}/src/callgam.py +0 -0
  133. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/__init__.py +0 -0
  134. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/auth.py +0 -0
  135. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/client.py +0 -0
  136. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/core.py +0 -0
  137. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/data.py +0 -0
  138. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/http.py +0 -0
  139. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/http_core.py +0 -0
  140. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/http_interface.py +0 -0
  141. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/mock_http.py +0 -0
  142. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/mock_http_core.py +0 -0
  143. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/mock_service.py +0 -0
  144. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/service.py +0 -0
  145. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/token_store.py +0 -0
  146. {gam7-7.20.3 → gam7-7.28.4}/src/gam/atom/url.py +0 -0
  147. {gam7-7.20.3/src → gam7-7.28.4/src/gam}/cacerts.pem +0 -0
  148. {gam7-7.20.3 → gam7-7.28.4}/src/gam/cbcm-v1.1beta1.json +0 -0
  149. {gam7-7.20.3 → gam7-7.28.4}/src/gam/contactdelegation-v1.json +0 -0
  150. {gam7-7.20.3 → gam7-7.28.4}/src/gam/datastudio-v1.json +0 -0
  151. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/__init__.py +0 -0
  152. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glaction.py +0 -0
  153. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glgapi.py +0 -0
  154. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glgdata.py +0 -0
  155. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glindent.py +0 -0
  156. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/glskus.py +0 -0
  157. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gamlib/gluprop.py +0 -0
  158. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/__init__.py +0 -0
  159. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/alt/__init__.py +0 -0
  160. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/alt/app_engine.py +0 -0
  161. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/alt/appengine.py +0 -0
  162. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/apps/__init__.py +0 -0
  163. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/apps/audit/__init__.py +0 -0
  164. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/apps/audit/service.py +0 -0
  165. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  166. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/apps/contacts/service.py +0 -0
  167. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/apps/service.py +0 -0
  168. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/service.py +0 -0
  169. {gam7-7.20.3 → gam7-7.28.4}/src/gam/gdata/urlfetch.py +0 -0
  170. {gam7-7.20.3 → gam7-7.28.4}/src/gam/meet-v2beta.json +0 -0
  171. {gam7-7.20.3 → gam7-7.28.4}/src/gam/serviceaccountlookup-v1.json +0 -0
  172. {gam7-7.20.3 → gam7-7.28.4}/src/gam-setup.bat +0 -0
  173. {gam7-7.20.3 → gam7-7.28.4}/src/gam.exe.manifest +0 -0
  174. {gam7-7.20.3 → gam7-7.28.4}/src/gam.py +0 -0
  175. {gam7-7.20.3 → gam7-7.28.4}/src/gam.wxs +0 -0
  176. {gam7-7.20.3 → gam7-7.28.4}/src/license.rtf +0 -0
  177. {gam7-7.20.3 → gam7-7.28.4}/src/tools/a_atleast_b.py +0 -0
  178. {gam7-7.20.3 → gam7-7.28.4}/src/tools/gen-wix-xml-filelist.py +0 -0
  179. {gam7-7.20.3 → gam7-7.28.4}/src/tools/mkGamRef.py +0 -0
  180. {gam7-7.20.3 → gam7-7.28.4}/src/tools/openssl.props +0 -0
  181. {gam7-7.20.3 → gam7-7.28.4}/src/version_info.txt.in +0 -0
  182. {gam7-7.20.3 → gam7-7.28.4}/wiki/00scratch.md +0 -0
  183. {gam7-7.20.3 → gam7-7.28.4}/wiki/Addresses.md +0 -0
  184. {gam7-7.20.3 → gam7-7.28.4}/wiki/Alert-Center.md +0 -0
  185. {gam7-7.20.3 → gam7-7.28.4}/wiki/BNF-Syntax.md +0 -0
  186. {gam7-7.20.3 → gam7-7.28.4}/wiki/CSV-Input-Filtering.md +0 -0
  187. {gam7-7.20.3 → gam7-7.28.4}/wiki/CSV-Output-Filtering.md +0 -0
  188. {gam7-7.20.3 → gam7-7.28.4}/wiki/CSV-Special-Characters.md +0 -0
  189. {gam7-7.20.3 → gam7-7.28.4}/wiki/Calendars-Access.md +0 -0
  190. {gam7-7.20.3 → gam7-7.28.4}/wiki/Calendars.md +0 -0
  191. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-AUE-Counts.md +0 -0
  192. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  193. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  194. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Printers.md +0 -0
  195. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Version-Counts.md +0 -0
  196. {gam7-7.20.3 → gam7-7.28.4}/wiki/Chrome-Version-History.md +0 -0
  197. {gam7-7.20.3 → gam7-7.28.4}/wiki/Classroom-Guardians.md +0 -0
  198. {gam7-7.20.3 → gam7-7.28.4}/wiki/Classroom-Invitations.md +0 -0
  199. {gam7-7.20.3 → gam7-7.28.4}/wiki/Cloud-Channel.md +0 -0
  200. {gam7-7.20.3 → gam7-7.28.4}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  201. {gam7-7.20.3 → gam7-7.28.4}/wiki/Cloud-Storage.md +0 -0
  202. {gam7-7.20.3 → gam7-7.28.4}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  203. {gam7-7.20.3 → gam7-7.28.4}/wiki/Collections-of-Items.md +0 -0
  204. {gam7-7.20.3 → gam7-7.28.4}/wiki/Command-Logging-Progress.md +0 -0
  205. {gam7-7.20.3 → gam7-7.28.4}/wiki/Customer.md +0 -0
  206. {gam7-7.20.3 → gam7-7.28.4}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  207. {gam7-7.20.3 → gam7-7.28.4}/wiki/Domains-Verification.md +0 -0
  208. {gam7-7.20.3 → gam7-7.28.4}/wiki/Drive-File-Selection.md +0 -0
  209. {gam7-7.20.3 → gam7-7.28.4}/wiki/Drive-Items.md +0 -0
  210. {gam7-7.20.3 → gam7-7.28.4}/wiki/Drive-REST-API-v3.md +0 -0
  211. {gam7-7.20.3 → gam7-7.28.4}/wiki/Email-Audit-Monitor.md +0 -0
  212. {gam7-7.20.3 → gam7-7.28.4}/wiki/Find-File-Owner.md +0 -0
  213. {gam7-7.20.3 → gam7-7.28.4}/wiki/GAM-Public-Chat-Room.md +0 -0
  214. {gam7-7.20.3 → gam7-7.28.4}/wiki/GAM-Return-Codes.md +0 -0
  215. {gam7-7.20.3 → gam7-7.28.4}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  216. {gam7-7.20.3 → gam7-7.28.4}/wiki/Global-Address-List.md +0 -0
  217. {gam7-7.20.3 → gam7-7.28.4}/wiki/Google-Network-Addresses.md +0 -0
  218. {gam7-7.20.3 → gam7-7.28.4}/wiki/HTTPS-Proxy.md +0 -0
  219. {gam7-7.20.3 → gam7-7.28.4}/wiki/Home.md +0 -0
  220. {gam7-7.20.3 → gam7-7.28.4}/wiki/How-to-Install-GAM7.md +0 -0
  221. {gam7-7.20.3 → gam7-7.28.4}/wiki/How-to-Uninstall-GAM7.md +0 -0
  222. {gam7-7.20.3 → gam7-7.28.4}/wiki/How-to-Update-GAM7.md +0 -0
  223. {gam7-7.20.3 → gam7-7.28.4}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  224. {gam7-7.20.3 → gam7-7.28.4}/wiki/Inbound-SSO.md +0 -0
  225. {gam7-7.20.3 → gam7-7.28.4}/wiki/Install-GAM-as-Python-Library.md +0 -0
  226. {gam7-7.20.3 → gam7-7.28.4}/wiki/List.md +0 -0
  227. {gam7-7.20.3 → gam7-7.28.4}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  228. {gam7-7.20.3 → gam7-7.28.4}/wiki/Other-Resources.md +0 -0
  229. {gam7-7.20.3 → gam7-7.28.4}/wiki/Permission-Matches.md +0 -0
  230. {gam7-7.20.3 → gam7-7.28.4}/wiki/Python-Regular-Expressions.md +0 -0
  231. {gam7-7.20.3 → gam7-7.28.4}/wiki/README.md +0 -0
  232. {gam7-7.20.3 → gam7-7.28.4}/wiki/Rclone.md +0 -0
  233. {gam7-7.20.3 → gam7-7.28.4}/wiki/SSL-Root-CA-Certificates.md +0 -0
  234. {gam7-7.20.3 → gam7-7.28.4}/wiki/Schemas.md +0 -0
  235. {gam7-7.20.3 → gam7-7.28.4}/wiki/Send-Email.md +0 -0
  236. {gam7-7.20.3 → gam7-7.28.4}/wiki/Sites.md +0 -0
  237. {gam7-7.20.3 → gam7-7.28.4}/wiki/Tag-Replace.md +0 -0
  238. {gam7-7.20.3 → gam7-7.28.4}/wiki/Unmanaged-Accounts.md +0 -0
  239. {gam7-7.20.3 → gam7-7.28.4}/wiki/Upgrade-Benefits.md +0 -0
  240. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Analytics-Admin.md +0 -0
  241. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Application-Specific-Passwords.md +0 -0
  242. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Backup-Verification-Codes.md +0 -0
  243. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Calendars-Access.md +0 -0
  244. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Calendars.md +0 -0
  245. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Classification-Labels.md +0 -0
  246. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Classroom-Profile.md +0 -0
  247. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Contacts-Delegates.md +0 -0
  248. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Deprovision.md +0 -0
  249. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Activity-Settings.md +0 -0
  250. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Comments.md +0 -0
  251. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Orphans.md +0 -0
  252. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Ownership.md +0 -0
  253. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Query.md +0 -0
  254. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Revisions.md +0 -0
  255. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Drive-Transfer.md +0 -0
  256. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Forms.md +0 -0
  257. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-CSE.md +0 -0
  258. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Filters.md +0 -0
  259. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Forwarding.md +0 -0
  260. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  261. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Profile.md +0 -0
  262. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-S-MIME.md +0 -0
  263. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  264. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Gmail-Settings.md +0 -0
  265. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Group-Membership.md +0 -0
  266. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Keep-Notes.md +0 -0
  267. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Looker-Studio.md +0 -0
  268. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Photo.md +0 -0
  269. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Profile-Photo.md +0 -0
  270. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Profile-Sharing.md +0 -0
  271. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  272. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Spreadsheets.md +0 -0
  273. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Tag-Manager.md +0 -0
  274. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Tokens.md +0 -0
  275. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-Web-Resources-and-Sites.md +0 -0
  276. {gam7-7.20.3 → gam7-7.28.4}/wiki/Users-YouTube.md +0 -0
  277. {gam7-7.20.3 → gam7-7.28.4}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  278. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-AdminSettingsExamples.md +0 -0
  279. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Android-Installation.md +0 -0
  280. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-BulkOperations.md +0 -0
  281. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-CalendarExamples.md +0 -0
  282. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Chat-Bot.md +0 -0
  283. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Chrome-Browser-Management.md +0 -0
  284. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Chrome-OS-Installation.md +0 -0
  285. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Chrome-Policy-Settings.md +0 -0
  286. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Cloud-Identity-Groups.md +0 -0
  287. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Calendar-Resources.md +0 -0
  288. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Calendars.md +0 -0
  289. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Definitions.md +0 -0
  290. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Drive.md +0 -0
  291. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Email.md +0 -0
  292. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Group-Attributes.md +0 -0
  293. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Groups.md +0 -0
  294. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Command-Reference-Users.md +0 -0
  295. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Context-Aware-Access-Levels.md +0 -0
  296. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  297. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-CreatingClientSecretsFile.md +0 -0
  298. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Custom-Schemas.md +0 -0
  299. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Data-Transfers.md +0 -0
  300. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-DomainVerification.md +0 -0
  301. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-ExamplesAccountAuditing.md +0 -0
  302. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-ExamplesCSV.md +0 -0
  303. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-ExamplesEmailSettings.md +0 -0
  304. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-ExamplesOrganizations.md +0 -0
  305. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GAM-Discussion-Group.md +0 -0
  306. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  307. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GAM-options-files.md +0 -0
  308. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GAM-with--minimal-GCP-rights.md +0 -0
  309. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GAM3CSVListings.md +0 -0
  310. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GAM3DirectoryCommands.md +0 -0
  311. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GAM3GroupSettings.md +0 -0
  312. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Google-Vault---Takeout-Commands.md +0 -0
  313. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-GoogleDriveManagement.md +0 -0
  314. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Grouping-18-or-Older-Users.md +0 -0
  315. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Home.md +0 -0
  316. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  317. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Inbound-SSO-Settings.md +0 -0
  318. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-LicenseExamples.md +0 -0
  319. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Managing-Admins.md +0 -0
  320. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Managing-CloudPrint-Printers.md +0 -0
  321. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Managing-Devices.md +0 -0
  322. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Managing-Google-Classroom.md +0 -0
  323. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-OAuthKeyManagement.md +0 -0
  324. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Printers.md +0 -0
  325. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-ResellerCommands.md +0 -0
  326. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-SecurityExamples.md +0 -0
  327. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-UnmanagedUsersExamples.md +0 -0
  328. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  329. {gam7-7.20.3/wiki → gam7-7.28.4/wiki/legacy}/l-_Footer.md +0 -0
@@ -41,70 +41,96 @@ jobs:
41
41
  include:
42
42
  - os: ubuntu-22.04
43
43
  jid: 1
44
+ freethreaded: false
44
45
  goal: build
45
46
  name: Build Intel Ubuntu Jammy
46
47
  - os: ubuntu-24.04
47
48
  jid: 2
49
+ freethreaded: false
48
50
  goal: build
49
51
  name: Build Intel Ubuntu Noble
50
52
  - os: ubuntu-24.04-arm
51
53
  jid: 3
54
+ freethreaded: false
52
55
  goal: build
53
56
  name: Build Arm Ubuntu Noble
54
57
  - os: ubuntu-22.04-arm
55
58
  jid: 4
59
+ freethreaded: false
56
60
  goal: build
57
61
  name: Build Arm Ubuntu Jammy
58
62
  - os: ubuntu-22.04
59
63
  jid: 5
64
+ freethreaded: false
60
65
  goal: build
61
66
  staticx: yes
62
67
  name: Build Intel StaticX Legacy
63
68
  - os: ubuntu-22.04-arm
64
69
  jid: 6
70
+ freethreaded: false
65
71
  goal: build
66
72
  staticx: yes
67
73
  name: Build Arm StaticX Legacy
68
- - os: macos-13
69
- jid: 7
70
- goal: build
71
- name: Build Intel MacOS
72
74
  - os: macos-14
73
75
  jid: 8
76
+ freethreaded: false
74
77
  goal: build
75
78
  name: Build Arm MacOS 14
76
79
  - os: macos-15
77
80
  jid: 9
81
+ freethreaded: false
78
82
  goal: build
79
83
  name: Build Arm MacOS 15
80
- - os: windows-2025
84
+ - os: macos-15-intel
81
85
  jid: 10
86
+ freethreaded: false
87
+ goal: build
88
+ name: Build x86_64 macOS 15
89
+ - os: macos-26
90
+ jid: 11
91
+ freethreaded: false
92
+ goal: build
93
+ name: Build Arm MacOS 26
94
+ - os: windows-2025
95
+ jid: 12
96
+ freethreaded: false
82
97
  goal: build
83
98
  name: Build Intel Windows
84
99
  - os: windows-11-arm
85
- jid: 11
100
+ jid: 13
101
+ freethreaded: false
86
102
  goal: build
87
103
  name: Build Arm Windows
88
104
  - os: ubuntu-24.04
89
105
  goal: test
90
106
  python: "3.10"
91
- jid: 12
107
+ freethreaded: false
108
+ jid: 14
92
109
  name: Test Python 3.10
93
110
  - os: ubuntu-24.04
94
111
  goal: test
95
112
  python: "3.11"
96
- jid: 13
113
+ freethreaded: false
114
+ jid: 15
97
115
  name: Test Python 3.11
98
116
  - os: ubuntu-24.04
99
117
  goal: test
100
118
  python: "3.12"
101
- jid: 14
119
+ freethreaded: false
120
+ jid: 16
102
121
  name: Test Python 3.12
103
122
  - os: ubuntu-24.04
104
123
  goal: test
105
- python: "3.14-dev"
106
- jid: 15
107
- name: Test Python 3.14-dev
124
+ python: "3.15-dev"
125
+ freethreaded: false
126
+ jid: 17
127
+ name: Test Python 3.15-dev
128
+ - os: ubuntu-24.04
129
+ goal: test
130
+ python: "3.14"
131
+ freethreaded: true
132
+ jid: 18
133
+ name: Test Python 3.14 freethread
108
134
 
109
135
  steps:
110
136
 
@@ -127,7 +153,7 @@ jobs:
127
153
  with:
128
154
  path: |
129
155
  cache.tar.xz
130
- key: gam-${{ matrix.jid }}-20250814
156
+ key: gam-${{ matrix.jid }}-20251031
131
157
 
132
158
  - name: Untar Cache archive
133
159
  if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit == 'true'
@@ -137,17 +163,19 @@ jobs:
137
163
 
138
164
  - name: Use pre-compiled Python for testing
139
165
  if: matrix.python != ''
140
- uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 # v5.6.0
166
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
141
167
  with:
142
168
  python-version: ${{ matrix.python }}
143
169
  allow-prereleases: true
144
170
  check-latest: true
171
+ freethreaded: ${{ matrix.freethreaded }}
145
172
 
146
173
  - name: common variables for all runs
147
174
  env:
148
175
  JID: ${{ matrix.jid }}
149
176
  ACTIONS_CACHE: ${{ steps.cache-python-ssl.outputs.cache-hit }}
150
177
  ACTIONS_GOAL: ${{ matrix.goal }}
178
+ freethreaded: ${{ matrix.freethreaded }}
151
179
  run: |
152
180
  case $RUNNER_ARCH in
153
181
  X64)
@@ -161,6 +189,12 @@ jobs:
161
189
  ;;
162
190
  esac
163
191
  echo "JID=${JID}" >> $GITHUB_ENV
192
+ echo "freethreaded=${freethreaded}" >> $GITHUB_ENV
193
+ if "$freethreaded"; then
194
+ # Hush some warnings while we test
195
+ export PYTHON_GIL=0
196
+ echo "PYTHON_GIL=${PYTHON_GIL}" >> $GITHUB_ENV
197
+ fi
164
198
  echo "ACTIONS_CACHE=${ACTIONS_CACHE}" >> $GITHUB_ENV
165
199
  echo "ACTIONS_GOAL=${ACTIONS_GOAL}" >> $GITHUB_ENV
166
200
  curl_version=$(curl --version | head -n 1 | awk '{ print $2 }')
@@ -186,13 +220,9 @@ jobs:
186
220
  if: matrix.goal == 'test'
187
221
  run: |
188
222
  export PYTHON=$(which python3)
189
- export PIP=$(which pip3)
190
- export gam="${PYTHON} -m gam"
191
- export gampath="$(readlink -e .)"
192
- echo -e "PYTHON: ${PYTHON}\nPIP: ${PIP}\gam: ${gam}\ngampath: ${gampath}"
223
+ export gampath="$(readlink -e .)/gam"
224
+ echo -e "PYTHON: ${PYTHON}\ngam: ${gam}\ngampath: ${gampath}"
193
225
  echo "PYTHON=${PYTHON}" >> $GITHUB_ENV
194
- echo "PIP=${PIP}" >> $GITHUB_ENV
195
- echo "gam=${gam}" >> $GITHUB_ENV
196
226
  echo "gampath=${gampath}" >> $GITHUB_ENV
197
227
 
198
228
  - name: Install necessary Github-hosted Linux packages
@@ -223,7 +253,7 @@ jobs:
223
253
  p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
224
254
 
225
255
  - name: Windows Configure VCode
226
- uses: ilammy/msvc-dev-cmd@460a772e4cf7358f9f2f23773240813e40e7a894 # v1.13.0
256
+ uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
227
257
  if: runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
228
258
  with:
229
259
  arch: ${{ runner.arch }}
@@ -253,14 +283,15 @@ jobs:
253
283
  MAKEOPT=""
254
284
  PERL="c:\strawberry\perl\bin\perl.exe"
255
285
  if [[ "$RUNNER_ARCH" == "ARM64" ]]; then
256
- PYEXTERNALS_PATH="arm64"
286
+ PYEXTERNALS_ARCH="arm64"
257
287
  WIX_ARCH="arm64"
258
288
  elif [[ "$RUNNER_ARCH" == "X64" ]]; then
259
- PYEXTERNALS_PATH="amd64"
289
+ PYEXTERNALS_ARCH="amd64"
260
290
  WIX_ARCH="x64"
261
291
  fi
262
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}"
263
- echo "PYTHON=${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}/python.exe" >> $GITHUB_ENV
292
+ PYEXTERNALS_PATH=$(cygpath -u "${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_ARCH}")
293
+ LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PYEXTERNALS_PATH}"
294
+ echo "PYTHON=${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_ARCH}/python.exe" >> $GITHUB_ENV
264
295
  echo "WIX_ARCH=${WIX_ARCH}" >> $GITHUB_ENV
265
296
  fi
266
297
  echo "We'll run make with: ${MAKEOPT}"
@@ -285,7 +316,7 @@ jobs:
285
316
  echo "COMPILED_OPENSSL_VERSION=${COMPILED_OPENSSL_VERSION}" >> $GITHUB_ENV
286
317
 
287
318
  - name: Windows NASM Install
288
- uses: ilammy/setup-nasm@3a5c2907aab40613bec4a2c63f5d0ef0b11fbd9f # v1.5.2
319
+ uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2
289
320
  if: matrix.goal == 'build' && runner.os == 'Windows' && runner.arch == 'X64' && steps.cache-python-ssl.outputs.cache-hit != 'true'
290
321
 
291
322
  - name: Config OpenSSL
@@ -443,32 +474,50 @@ jobs:
443
474
  "${PYTHON}" -V
444
475
  "${PYTHON}" -c "import ssl; print(f'Using {ssl.OPENSSL_VERSION}')"
445
476
 
477
+ - name: Create and use Python venv
478
+ run: |
479
+ cd "$GITHUB_WORKSPACE"
480
+ curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py
481
+ "$PYTHON" get-pip.py
482
+ "$PYTHON" -m venv venv
483
+ if [[ "$RUNNER_OS" == "Windows" ]]; then
484
+ # pyscard seems to build outside venv but not in it.
485
+ # build it so it's cached.
486
+ "$PYTHON" -m pip install --upgrade --force-reinstall pyscard
487
+ export PYTHON="${GITHUB_WORKSPACE}/venv/scripts/python.exe"
488
+ else
489
+ export PYTHON="${GITHUB_WORKSPACE}/venv/bin/python3"
490
+ fi
491
+ echo "PYTHON=${PYTHON}" >> $GITHUB_ENV
492
+ if [[ "$ACTIONS_GOAL" == "test" ]]; then
493
+ export gam="${PYTHON} gam.py"
494
+ echo "gam=${gam}" >> $GITHUB_ENV
495
+ fi
496
+
446
497
  - name: Upgrade pip, wheel, etc
447
498
  run: |
448
499
  curl $curl_retry -O https://bootstrap.pypa.io/get-pip.py
449
500
  "$PYTHON" get-pip.py
450
501
  "$PYTHON" -m pip install --upgrade pip
451
502
  "$PYTHON" -m pip install --upgrade wheel
452
- "$PYTHON" -m pip install setuptools
503
+ "$PYTHON" -m pip install --upgrade setuptools
453
504
  "$PYTHON" -m pip install --upgrade importlib-metadata
454
505
  "$PYTHON" -m pip install --upgrade setuptools-scm
506
+ "$PYTHON" -m pip install --upgrade packaging
455
507
  "$PYTHON" -m pip list
456
508
 
457
- - name: Custom wheels for Win arm64
458
- if: runner.os == 'Windows' && runner.arch == 'ARM64'
459
- run: |
460
- latest_crypt_whl=$(curl https://api.github.com/repos/jay0lee/cryptography/releases/latest -s | jq -r .assets.[0].browser_download_url)
461
- echo "Downloading ${latest_crypt_whl}..."
462
- curl -O -L "$latest_crypt_whl"
463
- "$PYTHON" -m pip install cryptography*.whl
464
-
465
509
  - name: Install pip requirements
466
510
  run: |
467
511
  echo "before anything..."
468
512
  "$PYTHON" -m pip list
469
- "$PYTHON" -m pip install --upgrade ..[yubikey]
470
- "$PYTHON" -m pip list
471
- #"$PYTHON" -m pip install --force-reinstall --no-deps --upgrade cryptography
513
+ echo "--info--"
514
+ "$PYTHON" -m pip cache info
515
+ echo "--list--"
516
+ "$PYTHON" -m pip cache list
517
+ echo "--pip debug verbose--"
518
+ "$PYTHON" -m pip debug --verbose
519
+ echo "--------"
520
+ "$PYTHON" -m pip install -vvv --upgrade ..[yubikey]
472
521
  echo "after everything..."
473
522
  "$PYTHON" -m pip list
474
523
 
@@ -538,7 +587,7 @@ jobs:
538
587
  - name: Copy extra package files
539
588
  if: matrix.goal == 'build'
540
589
  run: |
541
- cp -v cacerts.pem "$gampath"
590
+ cp -v gam/cacerts.pem "$gampath"
542
591
  cp -v LICENSE "$gampath"
543
592
  cp -v GamCommands.txt "$gampath"
544
593
  cp -v GamUpdate.txt "$gampath"
@@ -588,7 +637,6 @@ jobs:
588
637
  - name: Basic Tests all jobs
589
638
  id: basictests
590
639
  run: |
591
- $PYTHON -m unittest discover --start-directory ./ --pattern "*_test.py" --buffer || if [ $? != 5 ]; then exit $?; fi # exit 5 is no tests
592
640
  $gam version extended nooffseterror
593
641
  export GAMVERSION=$($gam version simple)
594
642
  echo "GAM Version ${GAMVERSION}"
@@ -750,6 +798,7 @@ jobs:
750
798
  gam*.tar.xz
751
799
  gam*.zip
752
800
  gam*.msi
801
+ *.png
753
802
 
754
803
  - name: Basic Tests build jobs only
755
804
  if: matrix.goal != 'test' && steps.cache-python-ssl.outputs.cache-hit != 'true'
@@ -842,9 +891,10 @@ jobs:
842
891
  $gam config enable_dasa false save
843
892
  # 9/17/24 temp disable due to Google API sluggishness to see new users for admin commands
844
893
  # $gam create admin $newuser _GROUPS_EDITOR_ROLE CUSTOMER # condition nonsecuritygroup
845
- $gam create admin $newgroup _HELP_DESK_ADMIN_ROLE org_unit "${newou}"
846
- $gam config csv_output_row_filter "assignedToUser:regex:${newuser}" print admins | $gam csv - gam delete admin "~roleAssignmentId"
847
- $gam config csv_output_row_filter "assignedToGroup:regex:${newgroup}" print admins | $gam csv - gam delete admin "~roleAssignmentId"
894
+ # 9/13/25 temp disable due to hangs
895
+ # $gam create admin $newgroup _HELP_DESK_ADMIN_ROLE org_unit "${newou}"
896
+ # $gam config csv_output_row_filter "assignedToUser:regex:${newuser}" print admins | $gam csv - gam delete admin "~roleAssignmentId"
897
+ # $gam config csv_output_row_filter "assignedToGroup:regex:${newgroup}" print admins | $gam csv - gam delete admin "~roleAssignmentId"
848
898
  $gam config enable_dasa false save
849
899
  $gam csv sample.csv gam create user ~~email~~ firstname "GHA Bulk" lastname ~~email~~ gha.jid $JID ou "${newou}"
850
900
  $gam csv sample.csv gam update user ~~email~~ recoveryphone 12125121110 recoveryemail jay0lee@gmail.com password random displayname "GitHub Actions Bulk ${JID}"
@@ -895,11 +945,11 @@ jobs:
895
945
  $gam calendar $gam_user printevents after -0d
896
946
  $gam config enable_dasa false save
897
947
  matterid=uid:$($gam create vaultmatter name "GHA matter $newbase" description "test matter" returnidonly)
898
- $gam create vaulthold matter $matterid name "GHA hold $newbase" corpus mail accounts $newuser
948
+ $gam create vaulthold matter $matterid name "GHA hold ${newbase}" corpus mail ou "$newou"
899
949
  $gam print vaultmatters matterstate open
900
950
  $gam print vaultholds matter $matterid
901
951
  $gam print vaultcount matter $matterid corpus mail everyone todrive tdnobrowser
902
- $gam create vaultexport matter $matterid name "GHA export $newbase" corpus mail accounts $newuser
952
+ $gam create vaultexport matter $matterid name "GHA export $newbase" corpus mail ou "$newou"
903
953
  $gam print exports matter $matterid | $gam csv - gam info export $matterid id:~~id~~
904
954
  $gam config enable_dasa true save
905
955
  $gam csv sample.csv gam user ~email add calendar id:$newresource
@@ -939,7 +989,7 @@ jobs:
939
989
  $gam report usageparameters customer
940
990
  $gam report usage customer parameters gmail:num_emails_sent,accounts:num_1day_logins
941
991
  $gam report customer todrive tdnobrowser
942
- #$gam report users fields accounts:is_less_secure_apps_access_allowed,gmail:last_imap_time,gmail:last_pop_time filters "accounts:last_login_time>2019-01-01T00:00:00.000Z" todrive tdnobrowser
992
+ #$gam report users fields accounts:is_less_secure_apps_access_allowed,gmail:last_imap_time,gmail:last_pop_time filters "accounts:last_login_time>2025-01-01T00:00:00.000Z" todrive tdnobrowser
943
993
  $gam report users todrive tdnobrowser
944
994
  $gam report admin start -3d todrive tdnobrowser
945
995
  $gam print devices nopersonaldevices nodeviceusers filter "serial:$JID$JID$JID$JID-" | $gam csv - gam delete device id ~name
@@ -979,7 +1029,8 @@ jobs:
979
1029
  else
980
1030
  tar_folders="bin/"
981
1031
  fi
982
- tar cJvvf cache.tar.xz $tar_folders
1032
+ echo '.git*' > ./excludes.txt
1033
+ tar cJvvf cache.tar.xz --exclude-from=excludes.txt $tar_folders
983
1034
 
984
1035
  merge:
985
1036
  if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
@@ -1029,7 +1080,7 @@ jobs:
1029
1080
  echo "dateversion=${dateversion}" >> $GITHUB_OUTPUT
1030
1081
 
1031
1082
  - name: Publish draft release
1032
- uses: softprops/action-gh-release@fbadcc90e88ecface60a0a0d123795b784ceb239 # v2.3.2
1083
+ uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
1033
1084
  with:
1034
1085
  draft: true
1035
1086
  prerelease: false
@@ -13,7 +13,7 @@ on:
13
13
  defaults:
14
14
  run:
15
15
  shell: bash
16
- working-directory: src
16
+ working-directory: src/gam
17
17
 
18
18
  jobs:
19
19
  check-certs:
@@ -37,7 +37,7 @@ jobs:
37
37
  cd GAM.wiki
38
38
  git config --local user.email "action@github.com"
39
39
  git config --local user.name "GitHub Action"
40
- git add *.md
40
+ git add -A
41
41
  git commit -m "[no ci] Push Wiki changes"
42
42
  git status
43
43
  git push
@@ -30,6 +30,6 @@ jobs:
30
30
  python -m build
31
31
 
32
32
  - name: Publish package distributions to PyPI
33
- uses: pypa/gh-action-pypi-publish@release/v1
33
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
34
34
  with:
35
35
  attestation: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.20.3
3
+ Version: 7.28.4
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -17,7 +17,8 @@ Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
- Requires-Python: >=3.9
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: arrow>=1.3.0
21
22
  Requires-Dist: chardet>=5.2.0
22
23
  Requires-Dist: cryptography>=44.0.2
23
24
  Requires-Dist: distro; sys_platform == 'linux'
@@ -26,11 +27,11 @@ Requires-Dist: google-api-python-client>=2.167.0
26
27
  Requires-Dist: google-auth-httplib2>=0.2.0
27
28
  Requires-Dist: google-auth-oauthlib>=1.2.2
28
29
  Requires-Dist: google-auth>=2.39.0
29
- Requires-Dist: httplib2>=0.22.0
30
+ Requires-Dist: httplib2>=0.31.0
30
31
  Requires-Dist: lxml>=5.4.0
31
32
  Requires-Dist: passlib>=1.7.4
32
33
  Requires-Dist: pathvalidate>=3.2.3
33
- Requires-Dist: python-dateutil
34
+ Requires-Dist: pysocks>=1.7.1
34
35
  Provides-Extra: yubikey
35
36
  Requires-Dist: yubikey-manager>=5.6.1; extra == 'yubikey'
36
37
  Description-Content-Type: text/markdown
@@ -55,6 +56,11 @@ this will download GAM, install it and start setup.
55
56
 
56
57
  Download the MSI Installer from the [GitHub Releases] page. Install the MSI and you'll be prompted to setup GAM.
57
58
 
59
+ ## Use your own Python
60
+ If you'd prefer to install GAM as a Python package you can install with pip:
61
+ ```
62
+ pip install gam7
63
+ ```
58
64
  # Documentation
59
65
 
60
66
  The GAM documentation is hosted in the [GitHub Wiki]
@@ -18,6 +18,11 @@ this will download GAM, install it and start setup.
18
18
 
19
19
  Download the MSI Installer from the [GitHub Releases] page. Install the MSI and you'll be prompted to setup GAM.
20
20
 
21
+ ## Use your own Python
22
+ If you'd prefer to install GAM as a Python package you can install with pip:
23
+ ```
24
+ pip install gam7
25
+ ```
21
26
  # Documentation
22
27
 
23
28
  The GAM documentation is hosted in the [GitHub Wiki]
@@ -10,6 +10,7 @@ authors = [
10
10
  # notice that yubikey-manager remains optional further down since it is less command and adds
11
11
  #significant compile dependencies.
12
12
  dependencies = [
13
+ "arrow>=1.3.0",
13
14
  "chardet>=5.2.0",
14
15
  "cryptography>=44.0.2",
15
16
  "distro; sys_platform=='linux'",
@@ -18,15 +19,15 @@ dependencies = [
18
19
  "google-auth-httplib2>=0.2.0",
19
20
  "google-auth-oauthlib>=1.2.2",
20
21
  "google-auth>=2.39.0",
21
- "httplib2>=0.22.0",
22
+ "httplib2>=0.31.0",
22
23
  "lxml>=5.4.0",
23
24
  "passlib>=1.7.4",
24
25
  "pathvalidate>=3.2.3",
25
- "python-dateutil",
26
+ "pysocks>=1.7.1",
26
27
  ]
27
28
  description = "CLI tool to manage Google Workspace"
28
29
  readme = "README.md"
29
- requires-python = ">=3.9"
30
+ requires-python = ">=3.10"
30
31
  classifiers = [
31
32
  "Programming Language :: Python :: 3",
32
33
  "Programming Language :: Python :: 3 :: Only",