gam7 7.6.3__tar.gz → 7.6.5__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.

Potentially problematic release.


This version of gam7 might be problematic. Click here for more details.

Files changed (320) hide show
  1. {gam7-7.6.3 → gam7-7.6.5}/.github/workflows/build.yml +74 -131
  2. {gam7-7.6.3 → gam7-7.6.5}/PKG-INFO +1 -1
  3. {gam7-7.6.3 → gam7-7.6.5}/src/GamUpdate.txt +10 -0
  4. {gam7-7.6.3 → gam7-7.6.5}/src/gam/__init__.py +13 -11
  5. gam7-7.6.5/src/requirements.txt +14 -0
  6. {gam7-7.6.3 → gam7-7.6.5}/wiki/Command-Line-Parsing.md +2 -2
  7. {gam7-7.6.3 → gam7-7.6.5}/wiki/GamUpdates.md +10 -0
  8. {gam7-7.6.3 → gam7-7.6.5}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +3 -3
  9. {gam7-7.6.3 → gam7-7.6.5}/wiki/Shared-Drives.md +7 -0
  10. {gam7-7.6.3 → gam7-7.6.5}/wiki/Version-and-Help.md +10 -10
  11. gam7-7.6.3/src/requirements.txt +0 -14
  12. {gam7-7.6.3 → gam7-7.6.5}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  13. {gam7-7.6.3 → gam7-7.6.5}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  14. {gam7-7.6.3 → gam7-7.6.5}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  15. {gam7-7.6.3 → gam7-7.6.5}/.github/ISSUE_TEMPLATE.txt +0 -0
  16. {gam7-7.6.3 → gam7-7.6.5}/.github/actions/creds.tar.xz.gpg +0 -0
  17. {gam7-7.6.3 → gam7-7.6.5}/.github/actions/decrypt.sh +0 -0
  18. {gam7-7.6.3 → gam7-7.6.5}/.github/actions/entitlements.plist +0 -0
  19. {gam7-7.6.3 → gam7-7.6.5}/.github/actions/package_exclusions.txt +0 -0
  20. {gam7-7.6.3 → gam7-7.6.5}/.github/stale.yml +0 -0
  21. {gam7-7.6.3 → gam7-7.6.5}/.github/workflows/codeql-analysis.yml +0 -0
  22. {gam7-7.6.3 → gam7-7.6.5}/.github/workflows/get-cacerts.yml +0 -0
  23. {gam7-7.6.3 → gam7-7.6.5}/.github/workflows/pushwiki.yml +0 -0
  24. {gam7-7.6.3 → gam7-7.6.5}/.github/workflows/pypi.yml +0 -0
  25. {gam7-7.6.3 → gam7-7.6.5}/.pre-commit-config.yaml +0 -0
  26. {gam7-7.6.3 → gam7-7.6.5}/LICENSE +0 -0
  27. {gam7-7.6.3 → gam7-7.6.5}/README.md +0 -0
  28. {gam7-7.6.3 → gam7-7.6.5}/pyproject.toml +0 -0
  29. {gam7-7.6.3 → gam7-7.6.5}/src/.gitignore +0 -0
  30. {gam7-7.6.3 → gam7-7.6.5}/src/GamCommands.txt +0 -0
  31. {gam7-7.6.3 → gam7-7.6.5}/src/LICENSE +0 -0
  32. {gam7-7.6.3 → gam7-7.6.5}/src/cacerts.pem +0 -0
  33. {gam7-7.6.3 → gam7-7.6.5}/src/callgam.py +0 -0
  34. {gam7-7.6.3 → gam7-7.6.5}/src/gam/__main__.py +0 -0
  35. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/__init__.py +0 -0
  36. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/auth.py +0 -0
  37. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/client.py +0 -0
  38. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/core.py +0 -0
  39. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/data.py +0 -0
  40. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/http.py +0 -0
  41. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/http_core.py +0 -0
  42. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/http_interface.py +0 -0
  43. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/mock_http.py +0 -0
  44. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/mock_http_core.py +0 -0
  45. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/mock_service.py +0 -0
  46. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/service.py +0 -0
  47. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/token_store.py +0 -0
  48. {gam7-7.6.3 → gam7-7.6.5}/src/gam/atom/url.py +0 -0
  49. {gam7-7.6.3 → gam7-7.6.5}/src/gam/cacerts.pem +0 -0
  50. {gam7-7.6.3 → gam7-7.6.5}/src/gam/cbcm-v1.1beta1.json +0 -0
  51. {gam7-7.6.3 → gam7-7.6.5}/src/gam/contactdelegation-v1.json +0 -0
  52. {gam7-7.6.3 → gam7-7.6.5}/src/gam/datastudio-v1.json +0 -0
  53. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/__init__.py +0 -0
  54. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glaction.py +0 -0
  55. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glapi.py +0 -0
  56. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glcfg.py +0 -0
  57. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glclargs.py +0 -0
  58. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glentity.py +0 -0
  59. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glgapi.py +0 -0
  60. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glgdata.py +0 -0
  61. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glglobals.py +0 -0
  62. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glindent.py +0 -0
  63. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glmsgs.py +0 -0
  64. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glskus.py +0 -0
  65. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/gluprop.py +0 -0
  66. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/glverlibs.py +0 -0
  67. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gamlib/yubikey.py +0 -0
  68. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/__init__.py +0 -0
  69. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/alt/__init__.py +0 -0
  70. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/alt/app_engine.py +0 -0
  71. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/alt/appengine.py +0 -0
  72. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/apps/__init__.py +0 -0
  73. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/apps/audit/__init__.py +0 -0
  74. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/apps/audit/service.py +0 -0
  75. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  76. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/apps/contacts/service.py +0 -0
  77. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/apps/service.py +0 -0
  78. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/service.py +0 -0
  79. {gam7-7.6.3 → gam7-7.6.5}/src/gam/gdata/urlfetch.py +0 -0
  80. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/__init__.py +0 -0
  81. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/_auth.py +0 -0
  82. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/_helpers.py +0 -0
  83. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/channel.py +0 -0
  84. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/discovery.py +0 -0
  85. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  86. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  87. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  88. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  89. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/errors.py +0 -0
  90. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/http.py +0 -0
  91. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/mimeparse.py +0 -0
  92. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/model.py +0 -0
  93. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/schema.py +0 -0
  94. {gam7-7.6.3 → gam7-7.6.5}/src/gam/googleapiclient/version.py +0 -0
  95. {gam7-7.6.3 → gam7-7.6.5}/src/gam/iso8601/__init__.py +0 -0
  96. {gam7-7.6.3 → gam7-7.6.5}/src/gam/iso8601/iso8601.py +0 -0
  97. {gam7-7.6.3 → gam7-7.6.5}/src/gam/meet-v2beta.json +0 -0
  98. {gam7-7.6.3 → gam7-7.6.5}/src/gam/serviceaccountlookup-v1.json +0 -0
  99. {gam7-7.6.3 → gam7-7.6.5}/src/gam/six.py +0 -0
  100. {gam7-7.6.3 → gam7-7.6.5}/src/gam-install.sh +0 -0
  101. {gam7-7.6.3 → gam7-7.6.5}/src/gam-setup.bat +0 -0
  102. {gam7-7.6.3 → gam7-7.6.5}/src/gam.exe.manifest +0 -0
  103. {gam7-7.6.3 → gam7-7.6.5}/src/gam.py +0 -0
  104. {gam7-7.6.3 → gam7-7.6.5}/src/gam.spec +0 -0
  105. {gam7-7.6.3 → gam7-7.6.5}/src/gam.wxs +0 -0
  106. {gam7-7.6.3 → gam7-7.6.5}/src/license.rtf +0 -0
  107. {gam7-7.6.3 → gam7-7.6.5}/src/requirements-dev.txt +0 -0
  108. {gam7-7.6.3 → gam7-7.6.5}/src/setup.cfg +0 -0
  109. {gam7-7.6.3 → gam7-7.6.5}/src/setup.py +0 -0
  110. {gam7-7.6.3 → gam7-7.6.5}/src/tools/a_atleast_b.py +0 -0
  111. {gam7-7.6.3 → gam7-7.6.5}/src/tools/gen-wix-xml-filelist.py +0 -0
  112. {gam7-7.6.3 → gam7-7.6.5}/src/tools/mkGamRef.py +0 -0
  113. {gam7-7.6.3 → gam7-7.6.5}/src/tools/openssl.props +0 -0
  114. {gam7-7.6.3 → gam7-7.6.5}/src/version_info.txt.in +0 -0
  115. {gam7-7.6.3 → gam7-7.6.5}/wiki/00scratch.md +0 -0
  116. {gam7-7.6.3 → gam7-7.6.5}/wiki/Addresses.md +0 -0
  117. {gam7-7.6.3 → gam7-7.6.5}/wiki/Administrators.md +0 -0
  118. {gam7-7.6.3 → gam7-7.6.5}/wiki/Alert-Center.md +0 -0
  119. {gam7-7.6.3 → gam7-7.6.5}/wiki/Aliases.md +0 -0
  120. {gam7-7.6.3 → gam7-7.6.5}/wiki/Authorization.md +0 -0
  121. {gam7-7.6.3 → gam7-7.6.5}/wiki/BNF-Syntax.md +0 -0
  122. {gam7-7.6.3 → gam7-7.6.5}/wiki/Basic-Items.md +0 -0
  123. {gam7-7.6.3 → gam7-7.6.5}/wiki/Bulk-Processing.md +0 -0
  124. {gam7-7.6.3 → gam7-7.6.5}/wiki/CSV-Input-Filtering.md +0 -0
  125. {gam7-7.6.3 → gam7-7.6.5}/wiki/CSV-Output-Filtering.md +0 -0
  126. {gam7-7.6.3 → gam7-7.6.5}/wiki/CSV-Special-Characters.md +0 -0
  127. {gam7-7.6.3 → gam7-7.6.5}/wiki/Calendars-Access.md +0 -0
  128. {gam7-7.6.3 → gam7-7.6.5}/wiki/Calendars-Events.md +0 -0
  129. {gam7-7.6.3 → gam7-7.6.5}/wiki/Calendars.md +0 -0
  130. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chat-Bot.md +0 -0
  131. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-AUE-Counts.md +0 -0
  132. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  133. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Installed-Apps.md +0 -0
  134. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  135. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Policies.md +0 -0
  136. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Printers.md +0 -0
  137. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Profile-Management.md +0 -0
  138. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Version-Counts.md +0 -0
  139. {gam7-7.6.3 → gam7-7.6.5}/wiki/Chrome-Version-History.md +0 -0
  140. {gam7-7.6.3 → gam7-7.6.5}/wiki/ChromeOS-Devices.md +0 -0
  141. {gam7-7.6.3 → gam7-7.6.5}/wiki/Classroom-Courses.md +0 -0
  142. {gam7-7.6.3 → gam7-7.6.5}/wiki/Classroom-Guardians.md +0 -0
  143. {gam7-7.6.3 → gam7-7.6.5}/wiki/Classroom-Invitations.md +0 -0
  144. {gam7-7.6.3 → gam7-7.6.5}/wiki/Classroom-Membership.md +0 -0
  145. {gam7-7.6.3 → gam7-7.6.5}/wiki/Cloud-Channel.md +0 -0
  146. {gam7-7.6.3 → gam7-7.6.5}/wiki/Cloud-Identity-Devices.md +0 -0
  147. {gam7-7.6.3 → gam7-7.6.5}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  148. {gam7-7.6.3 → gam7-7.6.5}/wiki/Cloud-Identity-Groups.md +0 -0
  149. {gam7-7.6.3 → gam7-7.6.5}/wiki/Cloud-Identity-Policies.md +0 -0
  150. {gam7-7.6.3 → gam7-7.6.5}/wiki/Cloud-Storage.md +0 -0
  151. {gam7-7.6.3 → gam7-7.6.5}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  152. {gam7-7.6.3 → gam7-7.6.5}/wiki/Collections-of-Items.md +0 -0
  153. {gam7-7.6.3 → gam7-7.6.5}/wiki/Collections-of-Users.md +0 -0
  154. {gam7-7.6.3 → gam7-7.6.5}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  155. {gam7-7.6.3 → gam7-7.6.5}/wiki/Command-Logging-Progress.md +0 -0
  156. {gam7-7.6.3 → gam7-7.6.5}/wiki/Context-Aware-Access-Levels.md +0 -0
  157. {gam7-7.6.3 → gam7-7.6.5}/wiki/Customer.md +0 -0
  158. {gam7-7.6.3 → gam7-7.6.5}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  159. {gam7-7.6.3 → gam7-7.6.5}/wiki/Domain-SharedContacts-GAL.md +0 -0
  160. {gam7-7.6.3 → gam7-7.6.5}/wiki/Domains-Verification.md +0 -0
  161. {gam7-7.6.3 → gam7-7.6.5}/wiki/Domains.md +0 -0
  162. {gam7-7.6.3 → gam7-7.6.5}/wiki/Downloads-Installs.md +0 -0
  163. {gam7-7.6.3 → gam7-7.6.5}/wiki/Drive-File-Selection.md +0 -0
  164. {gam7-7.6.3 → gam7-7.6.5}/wiki/Drive-Items.md +0 -0
  165. {gam7-7.6.3 → gam7-7.6.5}/wiki/Drive-REST-API-v3.md +0 -0
  166. {gam7-7.6.3 → gam7-7.6.5}/wiki/Email-Audit-Monitor.md +0 -0
  167. {gam7-7.6.3 → gam7-7.6.5}/wiki/Find-File-Owner.md +0 -0
  168. {gam7-7.6.3 → gam7-7.6.5}/wiki/GAM-Public-Chat-Room.md +0 -0
  169. {gam7-7.6.3 → gam7-7.6.5}/wiki/GAM-Return-Codes.md +0 -0
  170. {gam7-7.6.3 → gam7-7.6.5}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  171. {gam7-7.6.3 → gam7-7.6.5}/wiki/GAM7-on-Android-Devices.md +0 -0
  172. {gam7-7.6.3 → gam7-7.6.5}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  173. {gam7-7.6.3 → gam7-7.6.5}/wiki/Google-Data-Transfers.md +0 -0
  174. {gam7-7.6.3 → gam7-7.6.5}/wiki/Google-Network-Addresses.md +0 -0
  175. {gam7-7.6.3 → gam7-7.6.5}/wiki/Groups-Membership.md +0 -0
  176. {gam7-7.6.3 → gam7-7.6.5}/wiki/Groups.md +0 -0
  177. {gam7-7.6.3 → gam7-7.6.5}/wiki/HTTPS-Proxy.md +0 -0
  178. {gam7-7.6.3 → gam7-7.6.5}/wiki/Home.md +0 -0
  179. {gam7-7.6.3 → gam7-7.6.5}/wiki/How-to-Install-GAM7.md +0 -0
  180. {gam7-7.6.3 → gam7-7.6.5}/wiki/How-to-Uninstall-GAM7.md +0 -0
  181. {gam7-7.6.3 → gam7-7.6.5}/wiki/How-to-Update-GAM7.md +0 -0
  182. {gam7-7.6.3 → gam7-7.6.5}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  183. {gam7-7.6.3 → gam7-7.6.5}/wiki/Inbound-SSO.md +0 -0
  184. {gam7-7.6.3 → gam7-7.6.5}/wiki/Install-GAM-as-Python-Library.md +0 -0
  185. {gam7-7.6.3 → gam7-7.6.5}/wiki/Licenses.md +0 -0
  186. {gam7-7.6.3 → gam7-7.6.5}/wiki/List-Items.md +0 -0
  187. {gam7-7.6.3 → gam7-7.6.5}/wiki/List.md +0 -0
  188. {gam7-7.6.3 → gam7-7.6.5}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  189. {gam7-7.6.3 → gam7-7.6.5}/wiki/Mobile-Devices.md +0 -0
  190. {gam7-7.6.3 → gam7-7.6.5}/wiki/Organizational-Units.md +0 -0
  191. {gam7-7.6.3 → gam7-7.6.5}/wiki/Other-Resources.md +0 -0
  192. {gam7-7.6.3 → gam7-7.6.5}/wiki/Permission-Matches.md +0 -0
  193. {gam7-7.6.3 → gam7-7.6.5}/wiki/Python-Regular-Expressions.md +0 -0
  194. {gam7-7.6.3 → gam7-7.6.5}/wiki/README.md +0 -0
  195. {gam7-7.6.3 → gam7-7.6.5}/wiki/Rclone.md +0 -0
  196. {gam7-7.6.3 → gam7-7.6.5}/wiki/Reports.md +0 -0
  197. {gam7-7.6.3 → gam7-7.6.5}/wiki/Reseller.md +0 -0
  198. {gam7-7.6.3 → gam7-7.6.5}/wiki/Resources.md +0 -0
  199. {gam7-7.6.3 → gam7-7.6.5}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  200. {gam7-7.6.3 → gam7-7.6.5}/wiki/SSL-Root-CA-Certificates.md +0 -0
  201. {gam7-7.6.3 → gam7-7.6.5}/wiki/Schemas.md +0 -0
  202. {gam7-7.6.3 → gam7-7.6.5}/wiki/Scripts.md +0 -0
  203. {gam7-7.6.3 → gam7-7.6.5}/wiki/Send-Email.md +0 -0
  204. {gam7-7.6.3 → gam7-7.6.5}/wiki/Sites.md +0 -0
  205. {gam7-7.6.3 → gam7-7.6.5}/wiki/Tag-Replace.md +0 -0
  206. {gam7-7.6.3 → gam7-7.6.5}/wiki/Todrive.md +0 -0
  207. {gam7-7.6.3 → gam7-7.6.5}/wiki/Unmanaged-Accounts.md +0 -0
  208. {gam7-7.6.3 → gam7-7.6.5}/wiki/Upgrade-Benefits.md +0 -0
  209. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Analytics-Admin.md +0 -0
  210. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Application-Specific-Passwords.md +0 -0
  211. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Backup-Verification-Codes.md +0 -0
  212. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Calendars-Access.md +0 -0
  213. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Calendars-Events.md +0 -0
  214. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Calendars.md +0 -0
  215. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Chat.md +0 -0
  216. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Classification-Labels.md +0 -0
  217. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Classroom-Profile.md +0 -0
  218. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Contacts-Delegates.md +0 -0
  219. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Contacts.md +0 -0
  220. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Deprovision.md +0 -0
  221. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Activity-Settings.md +0 -0
  222. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Cleanup.md +0 -0
  223. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Comments.md +0 -0
  224. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Copy-Move.md +0 -0
  225. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Files-Display.md +0 -0
  226. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Files-Manage.md +0 -0
  227. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Orphans.md +0 -0
  228. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Ownership.md +0 -0
  229. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Permissions.md +0 -0
  230. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Query.md +0 -0
  231. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Revisions.md +0 -0
  232. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Shortcuts.md +0 -0
  233. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Drive-Transfer.md +0 -0
  234. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Forms.md +0 -0
  235. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-CSE.md +0 -0
  236. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Delegates.md +0 -0
  237. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Filters.md +0 -0
  238. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Forwarding.md +0 -0
  239. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Labels.md +0 -0
  240. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  241. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Profile.md +0 -0
  242. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-S-MIME.md +0 -0
  243. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  244. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Gmail-Settings.md +0 -0
  245. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Group-Membership.md +0 -0
  246. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Keep-Notes.md +0 -0
  247. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Looker-Studio.md +0 -0
  248. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Meet.md +0 -0
  249. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-People-Contacts-Profiles.md +0 -0
  250. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Photo.md +0 -0
  251. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Profile-Photo.md +0 -0
  252. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Profile-Sharing.md +0 -0
  253. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Shared-Drives.md +0 -0
  254. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  255. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Spreadsheets.md +0 -0
  256. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Tasks.md +0 -0
  257. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-Tokens.md +0 -0
  258. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users-YouTube.md +0 -0
  259. {gam7-7.6.3 → gam7-7.6.5}/wiki/Users.md +0 -0
  260. {gam7-7.6.3 → gam7-7.6.5}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  261. {gam7-7.6.3 → gam7-7.6.5}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  262. {gam7-7.6.3 → gam7-7.6.5}/wiki/Vault-Takeout.md +0 -0
  263. {gam7-7.6.3 → gam7-7.6.5}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  264. {gam7-7.6.3 → gam7-7.6.5}/wiki/_Sidebar.md +0 -0
  265. {gam7-7.6.3 → gam7-7.6.5}/wiki/gam.cfg.md +0 -0
  266. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-AdminSettingsExamples.md +0 -0
  267. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Android-Installation.md +0 -0
  268. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-BulkOperations.md +0 -0
  269. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-CalendarExamples.md +0 -0
  270. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Chat-Bot.md +0 -0
  271. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Chrome-Browser-Management.md +0 -0
  272. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Chrome-OS-Installation.md +0 -0
  273. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Chrome-Policy-Settings.md +0 -0
  274. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Cloud-Identity-Groups.md +0 -0
  275. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  276. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Calendars.md +0 -0
  277. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Definitions.md +0 -0
  278. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Drive.md +0 -0
  279. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Email.md +0 -0
  280. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  281. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Groups.md +0 -0
  282. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Command-Reference-Users.md +0 -0
  283. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  284. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  285. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-CreatingClientSecretsFile.md +0 -0
  286. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Custom-Schemas.md +0 -0
  287. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Data-Transfers.md +0 -0
  288. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-DomainVerification.md +0 -0
  289. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-ExamplesAccountAuditing.md +0 -0
  290. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-ExamplesCSV.md +0 -0
  291. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-ExamplesEmailSettings.md +0 -0
  292. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-ExamplesOrganizations.md +0 -0
  293. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM-Discussion-Group.md +0 -0
  294. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  295. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM-options-files.md +0 -0
  296. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  297. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM3CSVListings.md +0 -0
  298. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM3DirectoryCommands.md +0 -0
  299. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM3GroupSettings.md +0 -0
  300. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GAM7-FAQ.md +0 -0
  301. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  302. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-GoogleDriveManagement.md +0 -0
  303. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  304. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Home.md +0 -0
  305. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  306. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Inbound-SSO-Settings.md +0 -0
  307. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-LicenseExamples.md +0 -0
  308. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Managing-Admins.md +0 -0
  309. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  310. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Managing-Devices.md +0 -0
  311. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Managing-Google-Classroom.md +0 -0
  312. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-OAuthKeyManagement.md +0 -0
  313. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Printers.md +0 -0
  314. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-ResellerCommands.md +0 -0
  315. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  316. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-SecurityExamples.md +0 -0
  317. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-UnmanagedUsersExamples.md +0 -0
  318. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Use-a-Yubikey.md +0 -0
  319. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  320. {gam7-7.6.3 → gam7-7.6.5}/wiki/l-_Footer.md +0 -0
@@ -22,7 +22,7 @@ defaults:
22
22
  working-directory: src
23
23
 
24
24
  env:
25
- SCRATCH_COUNTER: 13
25
+ SCRATCH_COUNTER: 14
26
26
  OPENSSL_CONFIG_OPTS: no-fips --api=3.0.0
27
27
  OPENSSL_INSTALL_PATH: ${{ github.workspace }}/bin/ssl
28
28
  OPENSSL_SOURCE_PATH: ${{ github.workspace }}/src/openssl
@@ -88,15 +88,12 @@ jobs:
88
88
  goal: build
89
89
  arch: Win64
90
90
  openssl_archs: VC-WIN64A
91
- # disable 3.9 test for now since it's oldest and due
92
- # for removal in Oct 2025. We only have 13 jid accounts
93
- # so we need this one off but can re-enable at some point
94
- # if we feel the need.
95
- #- os: ubuntu-24.04
96
- # goal: test
97
- # python: "3.9"
98
- # jid: 11
99
- # arch: x86_64
91
+ #- os: windows-11-arm
92
+ # jid: 14
93
+ # goal: build
94
+ # arch: arm64
95
+ # openssl_archs: VC-WIN64-ARM
96
+ # continue-on-error: true
100
97
  - os: ubuntu-24.04
101
98
  goal: test
102
99
  python: "3.10"
@@ -148,6 +145,7 @@ jobs:
148
145
  with:
149
146
  python-version: ${{ matrix.python }}
150
147
  allow-prereleases: true
148
+ check-latest: true
151
149
 
152
150
  - name: common variables for all runs
153
151
  env:
@@ -175,15 +173,7 @@ jobs:
175
173
  fi
176
174
  echo "GAMCFGDIR=${GAMCFGDIR}" >> $GITHUB_ENV
177
175
  echo "GAMCFGDIR is: ${GAMCFGDIR}"
178
- if [[ "${RUNNER_OS}" == "macOS" ]]; then
179
- GAMOS="macos"
180
- elif [[ "${RUNNER_OS}" == "Linux" ]]; then
181
- GAMOS="linux"
182
- elif [[ "${RUNNER_OS}" == "Windows" ]]; then
183
- GAMOS="windows"
184
- else
185
- GAMOS='unknown'
186
- fi
176
+ export GAMOS=$(echo "$RUNNER_OS" | tr '[:upper:]' '[:lower:]')
187
177
  echo "GAMOS=${GAMOS}" >> $GITHUB_ENV
188
178
  echo "GAMOS is: ${GAMOS}"
189
179
 
@@ -232,7 +222,7 @@ jobs:
232
222
  uses: ilammy/msvc-dev-cmd@v1
233
223
  if: runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
234
224
  with:
235
- arch: ${{ matrix.arch }}
225
+ arch: ${{ runner.arch }}
236
226
 
237
227
  - name: Set Env Variables for build
238
228
  if: matrix.goal == 'build'
@@ -242,13 +232,6 @@ jobs:
242
232
  run: |
243
233
  echo "We are running on ${RUNNER_OS}"
244
234
  LD_LIBRARY_PATH="${OPENSSL_INSTALL_PATH}/lib:${PYTHON_INSTALL_PATH}/lib:/usr/local/lib"
245
- if [[ "${arch}" == "Win64" ]]; then
246
- PYEXTERNALS_PATH="amd64"
247
- PYBUILDRELEASE_ARCH="x64"
248
- GAM_ARCHIVE_ARCH="x86_64"
249
- WIX_ARCH="x64"
250
- CHOC_OPS=""
251
- fi
252
235
  if [[ "${RUNNER_OS}" == "macOS" ]]; then
253
236
  MAKE=make
254
237
  MAKEOPT="-j$(sysctl -n hw.logicalcpu)"
@@ -266,6 +249,17 @@ jobs:
266
249
  MAKE=nmake
267
250
  MAKEOPT=""
268
251
  PERL="c:\strawberry\perl\bin\perl.exe"
252
+ if [[ "$RUNNER_ARCH" == "ARM64" ]]; then
253
+ PYEXTERNALS_PATH="arm64"
254
+ GAM_ARCHIVE_ARCH="arm64"
255
+ WIX_ARCH="arm64"
256
+ CHOC_OPS=""
257
+ elif [[ "$RUNNER_ARCH" == "X64" ]]; then
258
+ PYEXTERNALS_PATH="amd64"
259
+ GAM_ARCHIVE_ARCH="x86_64"
260
+ WIX_ARCH="x64"
261
+ CHOC_OPS=""
262
+ fi
269
263
  LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}"
270
264
  echo "PYTHON=${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}/python.exe" >> $GITHUB_ENV
271
265
  echo "GAM_ARCHIVE_ARCH=${GAM_ARCHIVE_ARCH}" >> $GITHUB_ENV
@@ -278,7 +272,6 @@ jobs:
278
272
  echo "MAKEOPT=${MAKEOPT}" >> $GITHUB_ENV
279
273
  echo "PERL=${PERL}" >> $GITHUB_ENV
280
274
  echo "PYEXTERNALS_PATH=${PYEXTERNALS_PATH}" >> $GITHUB_ENV
281
- echo "PYBUILDRELEASE_ARCH=${PYBUILDRELEASE_ARCH}" >> $GITHUB_ENV
282
275
  echo "openssl_archs=${openssl_archs}" >> $GITHUB_ENV
283
276
 
284
277
  - name: Get latest stable OpenSSL source
@@ -293,29 +286,21 @@ jobs:
293
286
  git checkout "${LATEST_STABLE_TAG}"
294
287
  export COMPILED_OPENSSL_VERSION=${LATEST_STABLE_TAG:8} # Trim the openssl- prefix
295
288
  echo "COMPILED_OPENSSL_VERSION=${COMPILED_OPENSSL_VERSION}" >> $GITHUB_ENV
296
- if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
297
- for openssl_arch in $openssl_archs; do
298
- ssldir="${OPENSSL_SOURCE_PATH}-${openssl_arch}"
299
- mkdir -v "${ssldir}"
300
- cp -vrf ${OPENSSL_SOURCE_PATH}/* "${ssldir}/"
301
- done
302
- rm -vrf "${OPENSSL_SOURCE_PATH}"
303
- else
304
- mv -v "${OPENSSL_SOURCE_PATH}" "${OPENSSL_SOURCE_PATH}-${openssl_archs}"
305
- fi
306
289
 
307
290
  - name: Windows NASM Install
308
291
  uses: ilammy/setup-nasm@v1
309
- if: matrix.goal == 'build' && runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
292
+ if: matrix.goal == 'build' && runner.os == 'Windows' && runner.arch == 'X64' && steps.cache-python-ssl.outputs.cache-hit != 'true'
310
293
 
311
294
  - name: Config OpenSSL
312
295
  if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
313
296
  run: |
314
- for openssl_arch in $openssl_archs; do
315
- cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_arch}"
316
- # --libdir=lib is needed so Python can find OpenSSL libraries
317
- "${PERL}" ./Configure "${openssl_arch}" --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS
318
- done
297
+ cd "${OPENSSL_SOURCE_PATH}"
298
+ # TODO: remove this once https://github.com/openssl/openssl/issues/26239 is fixed.
299
+ if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
300
+ export CFLAGS=-DNO_INTERLOCKEDOR64
301
+ fi
302
+ # --libdir=lib is needed so Python can find OpenSSL libraries
303
+ "${PERL}" ./Configure "${openssl_arch}" --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS
319
304
 
320
305
  - name: Rename GNU link on Windows
321
306
  if: matrix.goal == 'build' && runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
@@ -326,53 +311,30 @@ jobs:
326
311
  - name: Make OpenSSL
327
312
  if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
328
313
  run: |
329
- for openssl_arch in $openssl_archs; do
330
- cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_arch}"
331
- $MAKE "${MAKEOPT}"
332
- done
314
+ cd "${OPENSSL_SOURCE_PATH}"
315
+ # TODO: remove this once https://github.com/openssl/openssl/issues/26239 is fixed.
316
+ if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
317
+ export CFLAGS=-DNO_INTERLOCKEDOR64
318
+ fi
319
+ $MAKE "$MAKEOPT"
333
320
 
334
321
  - name: Install OpenSSL
335
322
  if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
336
323
  run: |
337
- if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
338
- for openssl_arch in $openssl_archs; do
339
- cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_arch}"
340
- # install_sw saves us ages processing man pages :-)
341
- $MAKE install_sw
342
- mv -v "${OPENSSL_INSTALL_PATH}" "${GITHUB_WORKSPACE}/bin/ssl-${openssl_arch}"
343
- done
344
- mkdir -vp "${OPENSSL_INSTALL_PATH}/lib"
345
- mkdir -vp "${OPENSSL_INSTALL_PATH}/bin"
346
- for archlib in libcrypto.3.dylib libssl.3.dylib libcrypto.a libssl.a; do
347
- lipo -create "${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64/lib/${archlib}" \
348
- "${GITHUB_WORKSPACE}/bin/ssl-darwin64-arm64/lib/${archlib}" \
349
- -output "${GITHUB_WORKSPACE}/bin/ssl/lib/${archlib}"
350
- done
351
- mv ${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64/include ${GITHUB_WORKSPACE}/bin/ssl/
352
- lipo -create "${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64/bin/openssl" \
353
- "${GITHUB_WORKSPACE}/bin/ssl-darwin64-arm64/bin/openssl" \
354
- -output "${GITHUB_WORKSPACE}/bin/ssl/bin/openssl"
355
- rm -rf ${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64
356
- rm -rf ${GITHUB_WORKSPACE}/bin/ssl-darwin64-arm64
357
- else
358
- cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_archs}"
359
- # install_sw saves us ages processing man pages :-)
360
- $MAKE install_sw
361
- fi
362
- if [[ "${RUNNER_OS}" != "Windows" ]]; then
363
- echo "LDFLAGS=-L${OPENSSL_INSTALL_PATH}/lib" >> $GITHUB_ENV
364
- fi
324
+ cd "${OPENSSL_SOURCE_PATH}"
325
+ # install_sw saves us ages processing man pages :-)
326
+ # $MAKE install_sw
327
+ $MAKE install
328
+ #if [[ "${RUNNER_OS}" != "Windows" ]]; then
329
+ echo "LDFLAGS=-L${OPENSSL_INSTALL_PATH}/lib" >> $GITHUB_ENV
330
+ #fi
365
331
  echo "CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1" >> $GITHUB_ENV
366
- case $arch in
367
- universal2)
368
- echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include -arch arm64 -arch x86_64 ${CFLAGS}" >> $GITHUB_ENV
369
- echo "ARCHFLAGS=-arch x86_64 -arch arm64" >> $GITHUB_ENV
370
- ;;
371
- x86_64)
332
+ case $RUNNER_ARCH in
333
+ X64)
372
334
  echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
373
335
  echo "ARCHFLAGS=-arch x86_64" >> $GITHUB_ENV
374
336
  ;;
375
- aarch64)
337
+ ARM64)
376
338
  echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
377
339
  echo "ARCHFLAGS=-arch arm64" >> $GITHUB_ENV
378
340
  ;;
@@ -399,18 +361,12 @@ jobs:
399
361
  if: matrix.goal == 'build' && runner.os != 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
400
362
  run: |
401
363
  cd "${PYTHON_SOURCE_PATH}"
402
- if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
403
- extra_args=( "--enable-universalsdk" "--with-universal-archs=universal2" )
404
- else
405
- extra_args=( )
406
- fi
407
364
  ./configure --with-openssl="${OPENSSL_INSTALL_PATH}" \
408
365
  --prefix="${PYTHON_INSTALL_PATH}" \
409
366
  --enable-shared \
410
367
  --with-ensurepip=upgrade \
411
368
  --enable-optimizations \
412
- --with-lto \
413
- "${extra_args[@]}" || : # exit 0
369
+ --with-lto || : # exit 0
414
370
  cat config.log
415
371
 
416
372
  - name: Windows Get External Python deps
@@ -430,10 +386,15 @@ jobs:
430
386
  Remove-Item -recurse -force "${env:OPENSSL_EXT_PATH}*"
431
387
  # Emulate what this script does:
432
388
  # https://github.com/python/cpython/blob/main/PCbuild/openssl.vcxproj
433
- $env:OPENSSL_EXT_TARGET_PATH = "${env:OPENSSL_EXT_PATH}${env:PYEXTERNALS_PATH}"
389
+ if (${env:RUNNER_ARCH} -eq "X64") {
390
+ $env:ossl_path = "amd64"
391
+ } elseif (${env:RUNNER_ARCH} -eq "ARM64") {
392
+ $env:ossl_path = "arm64"
393
+ }
394
+ $env:OPENSSL_EXT_TARGET_PATH = "${env:OPENSSL_EXT_PATH}${env:ossl_path}"
434
395
  echo "Copying our OpenSSL to ${env:OPENSSL_EXT_TARGET_PATH}"
435
396
  mkdir "${env:OPENSSL_EXT_TARGET_PATH}\include\openssl\"
436
- Copy-Item -Path "${env:GITHUB_WORKSPACE}/src/openssl-${env:openssl_archs}\LICENSE.txt" -Destination "${env:OPENSSL_EXT_TARGET_PATH}\LICENSE" -Verbose
397
+ Copy-Item -Path "${env:OPENSSL_SOURCE_PATH}\LICENSE.txt" -Destination "${env:OPENSSL_EXT_TARGET_PATH}\LICENSE"
437
398
  cp -v "$env:OPENSSL_INSTALL_PATH\lib\*" "${env:OPENSSL_EXT_TARGET_PATH}"
438
399
  cp -v "$env:OPENSSL_INSTALL_PATH\bin\*" "${env:OPENSSL_EXT_TARGET_PATH}"
439
400
  cp -v "$env:OPENSSL_INSTALL_PATH\include\openssl\*" "${env:OPENSSL_EXT_TARGET_PATH}\include\openssl\"
@@ -454,8 +415,15 @@ jobs:
454
415
  cd "${env:PYTHON_SOURCE_PATH}"
455
416
  # We need out custom openssl.props which uses OpenSSL 3 DLL names
456
417
  Copy-Item -Path "${env:GITHUB_WORKSPACE}\src\tools\openssl.props" -Destination PCBuild\ -Verbose
457
- echo "Building for ${env:PYBUILDRELEASE_ARCH}..."
458
- PCBuild\build.bat -m --pgo -c Release -p "${env:PYBUILDRELEASE_ARCH}"
418
+ if (${env:RUNNER_ARCH} -eq "X64") {
419
+ $env:arch = "x64"
420
+ PCBuild\build.bat -c Release -p $env:arch --pgo
421
+ } elseif (${env:RUNNER_ARCH} -eq "ARM64") {
422
+ $env:arch = "ARM64"
423
+ # TODO: figure out why Windows ARM64 isn't compat with PGO optimiazation
424
+ # causes 10-20% slowdown in Python
425
+ PCBuild\build.bat -c Release -p $env:arch
426
+ }
459
427
 
460
428
  - name: Mac/Linux Build Python
461
429
  if: matrix.goal == 'build' && runner.os != 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
@@ -479,6 +447,11 @@ jobs:
479
447
  "${PYTHON}" -V
480
448
  "${PYTHON}" -c "import ssl; print(f'Using {ssl.OPENSSL_VERSION}')"
481
449
 
450
+ - name: Windows ARM Install rust and cargo
451
+ if: matrix.goal == 'build' && runner.os == 'Windows' && runner.arch == 'ARM64' && steps.cache-python-ssl.outputs.cache-hit != 'true'
452
+ run: |
453
+ choco install rust
454
+
482
455
  - name: Upgrade pip, wheel, etc
483
456
  run: |
484
457
  curl $curl_retry -O https://bootstrap.pypa.io/get-pip.py
@@ -489,37 +462,14 @@ jobs:
489
462
 
490
463
  - name: Install pip requirements
491
464
  run: |
465
+ # rust cargo needs this to compile
466
+ export OPENSSL_DIR="$OPENSSL_INSTALL_PATH"
492
467
  echo "before anything..."
493
468
  "${PYTHON}" -m pip list
494
- if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
495
- # cffi is a dep of cryptography and doesn't ship
496
- # a universal2 wheel so we must build one ourself :-/
497
- export CFLAGS="-arch x86_64 -arch arm64"
498
- export ARCHFLAGS="-arch x86_64 -arch arm64"
499
- "${PYTHON}" -m pip install --upgrade --force-reinstall --no-binary :all: \
500
- --no-cache-dir --no-deps --use-pep517 \
501
- --use-feature=no-binary-enable-wheel-cache \
502
- cffi
503
- echo "before cryptography..."
504
- "${PYTHON}" -m pip list
505
- # cryptography has a universal2 wheel but getting it installed
506
- # on x86-64 MacOS is a royal pain in the keester.
507
- "${PYTHON}" -m pip download --only-binary :all: \
508
- --dest . \
509
- --no-cache \
510
- --no-deps \
511
- --platform macosx_10_15_universal2 \
512
- cryptography
513
- "${PYTHON}" -m pip install --force-reinstall --no-deps cryptography*.whl
514
- echo "after cryptography..."
515
- "${PYTHON}" -m pip list
516
- "${PYTHON}" -m pip install --upgrade --no-binary :all: -r requirements.txt
517
- else
518
- "${PYTHON}" -m pip install --upgrade -r requirements.txt
519
- echo "after requirements..."
520
- "${PYTHON}" -m pip list
521
- "${PYTHON}" -m pip install --force-reinstall --no-deps --upgrade cryptography
522
- fi
469
+ "${PYTHON}" -m pip install --upgrade -r requirements.txt
470
+ echo "after requirements..."
471
+ "${PYTHON}" -m pip list
472
+ "${PYTHON}" -m pip install --force-reinstall --no-deps --upgrade cryptography
523
473
  echo "after everything..."
524
474
  "${PYTHON}" -m pip list
525
475
 
@@ -534,14 +484,7 @@ jobs:
534
484
  # remove pre-compiled bootloaders so we fail if bootloader compile fails
535
485
  rm -rvf PyInstaller/bootloader/*-*/*
536
486
  cd bootloader
537
- export PYINSTALLER_BUILD_ARGS=""
538
- case "${arch}" in
539
- "Win64")
540
- export PYINSTALLER_BUILD_ARGS="--target-arch=64bit"
541
- ;;
542
- esac
543
- echo "PyInstaller build arguments: ${PYINSTALLER_BUILD_ARGS}"
544
- "${PYTHON}" ./waf all $PYINSTALLER_BUILD_ARGS
487
+ "${PYTHON}" ./waf all
545
488
  cd ..
546
489
  echo "---- Installing PyInstaller ----"
547
490
  "${PYTHON}" -m pip install .
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.6.3
3
+ Version: 7.6.5
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
@@ -1,3 +1,13 @@
1
+ 7.06.05
2
+
3
+ Updated code in `gam delete|update chromepolicy` to handle the `policyTargetKey[additionalTargetKeys]`
4
+ field in a more general manner for future use.
5
+
6
+ 7.06.04
7
+
8
+ Fixed bug in `gam report <ActivityApplictionName>` where a report with no activities
9
+ was not displaying any output.
10
+
1
11
  7.06.03
2
12
 
3
13
  Fixed bug in `gam <UserTypeEntity> print|show drivelastmodification` that caused a trap
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
25
25
  """
26
26
 
27
27
  __author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
28
- __version__ = '7.06.03'
28
+ __version__ = '7.06.05'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -14145,6 +14145,7 @@ def doReport():
14145
14145
  startDateTime += oneDay
14146
14146
  csvPF.writeCSVfile(f'Customer Report - {tryDate}')
14147
14147
  else: # activityReports
14148
+ csvPF.SetTitles('name')
14148
14149
  if addCSVData:
14149
14150
  csvPF.AddTitles(sorted(addCSVData.keys()))
14150
14151
  if select:
@@ -14303,8 +14304,7 @@ def doReport():
14303
14304
  row = {'name': 'NoActivities'}
14304
14305
  if addCSVData:
14305
14306
  row.update(addCSVData)
14306
- csvPF.WriteRowTitles(row)
14307
- csvPF.SetSortTitles(['name'])
14307
+ csvPF.WriteRowTitles(row)
14308
14308
  else:
14309
14309
  if eventRowFilter:
14310
14310
  csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
@@ -28090,10 +28090,12 @@ def updatePolicyRequests(body, targetResource, printer_id, app_id):
28090
28090
  for request in body['requests']:
28091
28091
  request.setdefault('policyTargetKey', {})
28092
28092
  request['policyTargetKey']['targetResource'] = targetResource
28093
- if app_id:
28094
- request['policyTargetKey']['additionalTargetKeys'] = {'app_id': app_id}
28095
- elif printer_id:
28096
- request['policyTargetKey']['additionalTargetKeys'] = {'printer_id': printer_id}
28093
+ if app_id or printer_id:
28094
+ request['policyTargetKey'].setdefault('additionalTargetKeys', {})
28095
+ if app_id:
28096
+ request['policyTargetKey']['additionalTargetKeys']['app_id'] = app_id
28097
+ elif printer_id:
28098
+ request['policyTargetKey']['additionalTargetKeys']['printer_id'] = printer_id
28097
28099
 
28098
28100
  # gam delete chromepolicy
28099
28101
  # (<SchemaName> [<JSONData>])+
@@ -28126,9 +28128,9 @@ def doDeleteChromePolicy():
28126
28128
  if checkArgumentPresent('json'):
28127
28129
  jsonData = getJSON(['direct', 'name', 'orgUnitPath', 'parentOrgUnitPath', 'group'])
28128
28130
  if 'additionalTargetKeys' in jsonData:
28129
- body['requests'][-1].setdefault('policyTargetKey', {})
28131
+ body['requests'][-1].setdefault('policyTargetKey', {'additionalTargetKeys': {}})
28130
28132
  for atk in jsonData['additionalTargetKeys']:
28131
- body['requests'][-1]['policyTargetKey']['additionalTargetKeys'] = {atk['name']: atk['value']}
28133
+ body['requests'][-1]['policyTargetKey']['additionalTargetKeys'][atk['name']] = atk['value']
28132
28134
  checkPolicyArgs(targetResource, printer_id, app_id)
28133
28135
  count = len(body['requests'])
28134
28136
  if count != 1:
@@ -28281,9 +28283,9 @@ def doUpdateChromePolicy():
28281
28283
  jsonData = getJSON(['direct', 'name', 'orgUnitPath', 'parentOrgUnitPath', 'group'])
28282
28284
  schemaNameAppId = schemaName
28283
28285
  if 'additionalTargetKeys' in jsonData:
28284
- body['requests'][-1].setdefault('policyTargetKey', {})
28286
+ body['requests'][-1].setdefault('policyTargetKey', {'additionalTargetKeys': {}})
28285
28287
  for atk in jsonData['additionalTargetKeys']:
28286
- body['requests'][-1]['policyTargetKey']['additionalTargetKeys'] = {atk['name']: atk['value']}
28288
+ body['requests'][-1]['policyTargetKey']['additionalTargetKeys'][atk['name']] = atk['value']
28287
28289
  if atk['name'] == 'app_id':
28288
28290
  schemaNameAppId += f"({atk['value']})"
28289
28291
  schemaNameList[-1] = schemaNameAppId
@@ -0,0 +1,14 @@
1
+ chardet
2
+ cryptography
3
+ distro; sys_platform=='linux'
4
+ filelock
5
+ google-api-python-client>=2.166.0
6
+ google-auth-httplib2>=0.2.0
7
+ google-auth-oauthlib>=1.2.1
8
+ google-auth>=2.38.0
9
+ httplib2>=0.22.0
10
+ lxml
11
+ passlib>=1.7.4
12
+ pathvalidate
13
+ python-dateutil
14
+ yubikey-manager[yubikey]>=5.6.1
@@ -57,10 +57,10 @@ Typically, you will enclose the entire list in double quotes and quote each item
57
57
  * ```"item item item"```
58
58
  - Items, separated by commas, with spaces, commas or single quotes in the items themselves
59
59
  * ```"'it em','it,em',\"it'em\""``` - Linux, MacOS, Windows Command Prompt
60
- * ```"'it em','it,em',`"it'em`""``` - Windows Power Shell
60
+ * ```"'it\ em','it,em',`"it\'em`""``` - Windows Power Shell
61
61
  - Items, separated by spaces, with spaces, commas or single quotes in the items themselves
62
62
  * ```"'it em' 'it,em' \"it'em\""``` - Linux, MacOS, Windows Command Prompt
63
- * ```"'it em' 'it,em' `"it'em`""``` - Windows Power Shell
63
+ * ```"'it\ em' 'it,em' `"it\'em`""``` - Windows Power Shell
64
64
 
65
65
  Typical places where these rules apply are lists of OUs and Contact Groups.
66
66
 
@@ -10,6 +10,16 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
10
10
 
11
11
  See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
12
12
 
13
+ ### 7.06.05
14
+
15
+ Updated code in `gam delete|update chromepolicy` to handle the `policyTargetKey[additionalTargetKeys]`
16
+ field in a more general manner for future use.
17
+
18
+ ### 7.06.04
19
+
20
+ Fixed bug in `gam report <ActivityApplictionName>` where a report with no activities
21
+ was not displaying any output.
22
+
13
23
  ### 7.06.03
14
24
 
15
25
  Fixed bug in `gam <UserTypeEntity> print|show drivelastmodification` that caused a trap
@@ -251,10 +251,10 @@ writes the credentials into the file oauth2.txt.
251
251
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
252
252
  admin@server:/Users/admin$ gam version
253
253
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
254
- GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
254
+ GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
255
255
  GAM Team <google-apps-manager@googlegroups.com>
256
256
  Python 3.13.3 64-bit final
257
- MacOS Sequoia 15.4 x86_64
257
+ MacOS Sequoia 15.4.1 x86_64
258
258
  Path: /Users/admin/bin/gam7
259
259
  Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
260
260
 
@@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt.
989
989
  C:\>del C:\GAMConfig\oauth2.txt
990
990
  C:\>gam version
991
991
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
992
- GAM 7.06.03 - https://github.com/GAM-team/GAM - pythonsource
992
+ GAM 7.06.05 - https://github.com/GAM-team/GAM - pythonsource
993
993
  GAM Team <google-apps-manager@googlegroups.com>
994
994
  Python 3.13.3 64-bit final
995
995
  Windows-10-10.0.17134 AMD64
@@ -24,6 +24,7 @@
24
24
  - [Display Shared Drive access for specific Shared Drives](#display-shared-drive-access-for-specific-shared-drives)
25
25
  - [Display Shared Drive access for selected Shared Drives](#display-shared-drive-access-for-selected-shared-drives)
26
26
  - [Display members of all Shared Drives](#display-members-of-all-shared-drives)
27
+ - [Display external members of all Shared Drives](#display-external-members-of-all-shared-drives)
27
28
  - [Display ACLs for Shared Drives with no organizers](#display-acls-for-shared-drives-with-no-organizers)
28
29
  - [Display ACLs for Shared Drives with all organizers outside of your domain](#display-acls-for-shared-drives-with-all-organizers-outside-of-your-domain)
29
30
  - [Display ACLs for Shared Drives with all ACLs outside of your domain](#display-acls-for-shared-drives-with-all-acls-outside-of-your-domain)
@@ -569,6 +570,12 @@ The `quotechar <Character>` option allows you to choose an alternate quote chara
569
570
  gam config csv_output_header_drop_filter "User,createdTime,permission.photoLink,permission.permissionDetails" redirect csv ./SharedDriveMembers.csv print shareddriveacls oneitemperrow
570
571
  ```
571
572
 
573
+ ## Display external members of all Shared Drives
574
+ Replace `<InternalDomainList>` with your list of internal domains.
575
+ ```
576
+ gam config csv_output_header_drop_filter "User,createdTime,permission.photoLink,permission.permissionDetails" redirect csv ./SharedDriveExternalMembers.csv print shareddriveacls pm notdomainlist <InternalDomainList> em oneitemperrow
577
+ ```
578
+
572
579
  ## Display Shared Drive access for selected Shared Drives
573
580
  ```
574
581
  gam [<UserTypeEntity>] show teamdriveacls
@@ -4,10 +4,10 @@ k
4
4
  Print the current version of Gam with details
5
5
  ```
6
6
  gam version
7
- GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
7
+ GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
8
8
  GAM Team <google-apps-manager@googlegroups.com>
9
9
  Python 3.13.3 64-bit final
10
- MacOS Sequoia 15.4 x86_64
10
+ MacOS Sequoia 15.4.1 x86_64
11
11
  Path: /Users/Admin/bin/gam7
12
12
  Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
13
13
  Time: 2023-06-02T21:10:00-07:00
@@ -16,10 +16,10 @@ Time: 2023-06-02T21:10:00-07:00
16
16
  Print the current version of Gam with details and time offset information
17
17
  ```
18
18
  gam version timeoffset
19
- GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
19
+ GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
20
20
  GAM Team <google-apps-manager@googlegroups.com>
21
21
  Python 3.13.3 64-bit final
22
- MacOS Sequoia 15.4 x86_64
22
+ MacOS Sequoia 15.4.1 x86_64
23
23
  Path: /Users/Admin/bin/gam7
24
24
  Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
25
25
  Your system time differs from www.googleapis.com by less than 1 second
@@ -28,10 +28,10 @@ Your system time differs from www.googleapis.com by less than 1 second
28
28
  Print the current version of Gam with extended details and SSL information
29
29
  ```
30
30
  gam version extended
31
- GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
31
+ GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
32
32
  GAM Team <google-apps-manager@googlegroups.com>
33
33
  Python 3.13.3 64-bit final
34
- MacOS Sequoia 15.4 x86_64
34
+ MacOS Sequoia 15.4.1 x86_64
35
35
  Path: /Users/Admin/bin/gam7
36
36
  Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
37
37
  Time: 2023-06-02T21:10:00-07:00
@@ -65,7 +65,7 @@ MacOS High Sierra 10.13.6 x86_64
65
65
  Path: /Users/Admin/bin/gam7
66
66
  Version Check:
67
67
  Current: 5.35.08
68
- Latest: 7.06.03
68
+ Latest: 7.06.05
69
69
  echo $?
70
70
  1
71
71
  ```
@@ -73,7 +73,7 @@ echo $?
73
73
  Print the current version number without details
74
74
  ```
75
75
  gam version simple
76
- 7.06.03
76
+ 7.06.05
77
77
  ```
78
78
  In Linux/MacOS you can do:
79
79
  ```
@@ -83,10 +83,10 @@ echo $VER
83
83
  Print the current version of Gam and address of this Wiki
84
84
  ```
85
85
  gam help
86
- GAM 7.06.03 - https://github.com/GAM-team/GAM
86
+ GAM 7.06.05 - https://github.com/GAM-team/GAM
87
87
  GAM Team <google-apps-manager@googlegroups.com>
88
88
  Python 3.13.3 64-bit final
89
- MacOS Sequoia 15.4 x86_64
89
+ MacOS Sequoia 15.4.1 x86_64
90
90
  Path: /Users/Admin/bin/gam7
91
91
  Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
92
92
  Time: 2023-06-02T21:10:00-07:00
@@ -1,14 +0,0 @@
1
- chardet
2
- cryptography
3
- distro; sys_platform=='linux'
4
- filelock
5
- google-api-python-client>=2.1
6
- google-auth-httplib2
7
- google-auth-oauthlib>=0.4.1
8
- google-auth>=2.3.2
9
- httplib2>=0.17.0
10
- lxml
11
- passlib>=1.7.2
12
- pathvalidate
13
- python-dateutil
14
- yubikey-manager[yubikey]>=5.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes