gam7 7.6.5__tar.gz → 7.6.8__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.
- gam7-7.6.8/.github/actions/decrypt.sh +19 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/workflows/build.yml +81 -75
- {gam7-7.6.5 → gam7-7.6.8}/PKG-INFO +2 -1
- {gam7-7.6.5 → gam7-7.6.8}/pyproject.toml +1 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/GamUpdate.txt +21 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/__init__.py +12 -12
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glmsgs.py +7 -3
- {gam7-7.6.5 → gam7-7.6.8}/src/gam-install.sh +12 -13
- {gam7-7.6.5 → gam7-7.6.8}/src/requirements.txt +1 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/setup.cfg +1 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Authorization.md +5 -4
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Downloads-Installs.md +15 -4
- {gam7-7.6.5 → gam7-7.6.8}/wiki/GamUpdates.md +21 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Meta-Commands-and-File-Redirection.md +1 -1
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Version-and-Help.md +6 -6
- gam7-7.6.5/.github/actions/creds.tar.xz.gpg +0 -0
- gam7-7.6.5/.github/actions/decrypt.sh +0 -38
- {gam7-7.6.5 → gam7-7.6.8}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/actions/entitlements.plist +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/stale.yml +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.github/workflows/pypi.yml +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/.pre-commit-config.yaml +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/LICENSE +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/README.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/.gitignore +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/GamCommands.txt +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/LICENSE +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/cacerts.pem +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/callgam.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/__main__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/auth.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/client.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/core.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/data.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/http.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/http_core.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/service.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/token_store.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/atom/url.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/cacerts.pem +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/service.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/_auth.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/_helpers.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/channel.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/discovery.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/errors.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/http.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/mimeparse.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/model.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/schema.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/googleapiclient/version.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/iso8601/__init__.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/iso8601/iso8601.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam/six.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam-setup.bat +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam.exe.manifest +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam.spec +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/gam.wxs +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/license.rtf +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/requirements-dev.txt +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/setup.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/tools/mkGamRef.py +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/tools/openssl.props +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/src/version_info.txt.in +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/00scratch.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Addresses.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Administrators.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Alert-Center.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Aliases.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Basic-Items.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Calendars-Access.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Calendars-Events.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Calendars.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chat-Bot.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Customer.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Domain-SharedContacts-GAL.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Domains-Verification.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Domains.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Drive-Items.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Groups-Membership.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Groups.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Home.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Licenses.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/List-Items.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/List.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Organizational-Units.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Other-Resources.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Permission-Matches.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/README.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Rclone.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Reports.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Reseller.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Resources.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Schemas.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Scripts.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Send-Email.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Shared-Drives.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Sites.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Tag-Replace.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Todrive.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Calendars.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Chat.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Contacts.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Forms.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Meet.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Photo.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Tasks.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-Tokens.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users-YouTube.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Users.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/_Sidebar.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/gam.cfg.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-AdminSettingsExamples.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Android-Installation.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-BulkOperations.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-CalendarExamples.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Chat-Bot.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Drive.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Email.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Groups.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Command-Reference-Users.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Custom-Schemas.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Data-Transfers.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-DomainVerification.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-ExamplesCSV.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-ExamplesOrganizations.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM-options-files.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM3CSVListings.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM3GroupSettings.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GAM7-FAQ.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-GoogleDriveManagement.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Home.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-LicenseExamples.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Managing-Admins.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Managing-Devices.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-OAuthKeyManagement.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Printers.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-ResellerCommands.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-SecurityExamples.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Use-a-Yubikey.md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.6.5 → gam7-7.6.8}/wiki/l-_Footer.md +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
credspath="$1"
|
|
3
|
+
if [ ! -d "$credspath" ]; then
|
|
4
|
+
echo "creating ${credspath}"
|
|
5
|
+
mkdir -p "$credspath"
|
|
6
|
+
fi
|
|
7
|
+
credsfile="${credspath}/oauth2.txt"
|
|
8
|
+
echo "$oa2" > "$credsfile"
|
|
9
|
+
echo "File size:"
|
|
10
|
+
wc -c "$credsfile"
|
|
11
|
+
echo "File type:"
|
|
12
|
+
file "$credsfile"
|
|
13
|
+
echo "Validation:"
|
|
14
|
+
jq -e . "$credsfile" > /dev/null
|
|
15
|
+
if [ $? -eq 0 ]; then
|
|
16
|
+
echo "Valid JSON"
|
|
17
|
+
else
|
|
18
|
+
echo "Invalid JSON"
|
|
19
|
+
fi
|
|
@@ -39,76 +39,69 @@ jobs:
|
|
|
39
39
|
- os: ubuntu-22.04
|
|
40
40
|
jid: 1
|
|
41
41
|
goal: build
|
|
42
|
-
|
|
43
|
-
openssl_archs: linux-x86_64
|
|
42
|
+
name: Build Intel Ubuntu Jammy
|
|
44
43
|
- os: ubuntu-24.04
|
|
45
44
|
jid: 2
|
|
46
45
|
goal: build
|
|
47
|
-
|
|
48
|
-
openssl_archs: linux-x86_64
|
|
46
|
+
name: Build Intel Ubuntu Noble
|
|
49
47
|
- os: ubuntu-24.04-arm
|
|
50
48
|
jid: 3
|
|
51
49
|
goal: build
|
|
52
|
-
|
|
53
|
-
openssl_archs: linux-aarch64
|
|
50
|
+
name: Build Arm Ubuntu Noble
|
|
54
51
|
- os: ubuntu-22.04-arm
|
|
55
52
|
jid: 4
|
|
56
53
|
goal: build
|
|
57
|
-
|
|
58
|
-
openssl_archs: linux-aarch64
|
|
54
|
+
name: Build Arm Ubuntu Jammy
|
|
59
55
|
- os: ubuntu-22.04
|
|
60
56
|
jid: 5
|
|
61
57
|
goal: build
|
|
62
|
-
arch: x86_64
|
|
63
|
-
openssl_archs: linux-x86_64
|
|
64
58
|
staticx: yes
|
|
59
|
+
name: Build Intel StaticX Legacy
|
|
65
60
|
- os: ubuntu-22.04-arm
|
|
66
61
|
jid: 6
|
|
67
62
|
goal: build
|
|
68
|
-
arch: aarch64
|
|
69
|
-
openssl_archs: linux-aarch64
|
|
70
63
|
staticx: yes
|
|
64
|
+
name: Build Arm StaticX Legacy
|
|
71
65
|
- os: macos-13
|
|
72
66
|
jid: 7
|
|
73
67
|
goal: build
|
|
74
|
-
|
|
75
|
-
openssl_archs: darwin64-x86_64
|
|
68
|
+
name: Build Intel MacOS
|
|
76
69
|
- os: macos-14
|
|
77
70
|
jid: 8
|
|
78
71
|
goal: build
|
|
79
|
-
|
|
80
|
-
openssl_archs: darwin64-arm64
|
|
72
|
+
name: Build Arm MacOS 14
|
|
81
73
|
- os: macos-15
|
|
82
74
|
jid: 9
|
|
83
75
|
goal: build
|
|
84
|
-
|
|
85
|
-
openssl_archs: darwin64-arm64
|
|
76
|
+
name: Build Arm MacOS 15
|
|
86
77
|
- os: windows-2022
|
|
87
78
|
jid: 10
|
|
88
79
|
goal: build
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
# arch: arm64
|
|
95
|
-
# openssl_archs: VC-WIN64-ARM
|
|
96
|
-
# continue-on-error: true
|
|
80
|
+
name: Build Intel Windows
|
|
81
|
+
- os: windows-11-arm
|
|
82
|
+
jid: 11
|
|
83
|
+
goal: build
|
|
84
|
+
name: Build Arm Windows
|
|
97
85
|
- os: ubuntu-24.04
|
|
98
86
|
goal: test
|
|
99
87
|
python: "3.10"
|
|
100
|
-
jid:
|
|
101
|
-
|
|
88
|
+
jid: 12
|
|
89
|
+
name: Test Python 3.10
|
|
102
90
|
- os: ubuntu-24.04
|
|
103
91
|
goal: test
|
|
104
92
|
python: "3.11"
|
|
105
|
-
jid:
|
|
106
|
-
|
|
93
|
+
jid: 13
|
|
94
|
+
name: Test Python 3.11
|
|
107
95
|
- os: ubuntu-24.04
|
|
108
96
|
goal: test
|
|
109
97
|
python: "3.12"
|
|
110
|
-
jid:
|
|
111
|
-
|
|
98
|
+
jid: 14
|
|
99
|
+
name: Test Python 3.12
|
|
100
|
+
- os: ubuntu-24.04
|
|
101
|
+
goal: test
|
|
102
|
+
python: "3.14-dev"
|
|
103
|
+
jid: 15
|
|
104
|
+
name: Test Python 3.14-dev
|
|
112
105
|
|
|
113
106
|
steps:
|
|
114
107
|
|
|
@@ -131,7 +124,7 @@ jobs:
|
|
|
131
124
|
with:
|
|
132
125
|
path: |
|
|
133
126
|
cache.tar.xz
|
|
134
|
-
key: gam-${{ matrix.jid }}-
|
|
127
|
+
key: gam-${{ matrix.jid }}-20250422
|
|
135
128
|
|
|
136
129
|
- name: Untar Cache archive
|
|
137
130
|
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit == 'true'
|
|
@@ -149,12 +142,21 @@ jobs:
|
|
|
149
142
|
|
|
150
143
|
- name: common variables for all runs
|
|
151
144
|
env:
|
|
152
|
-
arch: ${{ matrix.arch }}
|
|
153
145
|
JID: ${{ matrix.jid }}
|
|
154
146
|
ACTIONS_CACHE: ${{ steps.cache-python-ssl.outputs.cache-hit }}
|
|
155
147
|
ACTIONS_GOAL: ${{ matrix.goal }}
|
|
156
148
|
run: |
|
|
157
|
-
|
|
149
|
+
case $RUNNER_ARCH in
|
|
150
|
+
X64)
|
|
151
|
+
echo "arch=x86_64" >> $GITHUB_ENV
|
|
152
|
+
;;
|
|
153
|
+
ARM64)
|
|
154
|
+
echo "arch=arm64" >> $GITHUB_ENV
|
|
155
|
+
;;
|
|
156
|
+
*)
|
|
157
|
+
echo "arch=${RUNNER_ARCH}" >> $GITHUB_ENV
|
|
158
|
+
;;
|
|
159
|
+
esac
|
|
158
160
|
echo "JID=${JID}" >> $GITHUB_ENV
|
|
159
161
|
echo "ACTIONS_CACHE=${ACTIONS_CACHE}" >> $GITHUB_ENV
|
|
160
162
|
echo "ACTIONS_GOAL=${ACTIONS_GOAL}" >> $GITHUB_ENV
|
|
@@ -168,7 +170,7 @@ jobs:
|
|
|
168
170
|
echo "curl_retry=${curl_retry}" >> $GITHUB_ENV
|
|
169
171
|
# GAMCFGDIR should be recreated on every run
|
|
170
172
|
GAMCFGDIR="${RUNNER_TEMP}/.gam"
|
|
171
|
-
if [ "$
|
|
173
|
+
if [ "$RUNNER_OS" == "Windows" ]; then
|
|
172
174
|
GAMCFGDIR=$(cygpath -u "$GAMCFGDIR")
|
|
173
175
|
fi
|
|
174
176
|
echo "GAMCFGDIR=${GAMCFGDIR}" >> $GITHUB_ENV
|
|
@@ -227,7 +229,6 @@ jobs:
|
|
|
227
229
|
- name: Set Env Variables for build
|
|
228
230
|
if: matrix.goal == 'build'
|
|
229
231
|
env:
|
|
230
|
-
openssl_archs: ${{ matrix.openssl_archs }}
|
|
231
232
|
staticx: ${{ matrix.staticx }}
|
|
232
233
|
run: |
|
|
233
234
|
echo "We are running on ${RUNNER_OS}"
|
|
@@ -251,18 +252,15 @@ jobs:
|
|
|
251
252
|
PERL="c:\strawberry\perl\bin\perl.exe"
|
|
252
253
|
if [[ "$RUNNER_ARCH" == "ARM64" ]]; then
|
|
253
254
|
PYEXTERNALS_PATH="arm64"
|
|
254
|
-
GAM_ARCHIVE_ARCH="arm64"
|
|
255
255
|
WIX_ARCH="arm64"
|
|
256
256
|
CHOC_OPS=""
|
|
257
257
|
elif [[ "$RUNNER_ARCH" == "X64" ]]; then
|
|
258
258
|
PYEXTERNALS_PATH="amd64"
|
|
259
|
-
GAM_ARCHIVE_ARCH="x86_64"
|
|
260
259
|
WIX_ARCH="x64"
|
|
261
260
|
CHOC_OPS=""
|
|
262
261
|
fi
|
|
263
262
|
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}"
|
|
264
263
|
echo "PYTHON=${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}/python.exe" >> $GITHUB_ENV
|
|
265
|
-
echo "GAM_ARCHIVE_ARCH=${GAM_ARCHIVE_ARCH}" >> $GITHUB_ENV
|
|
266
264
|
echo "WIX_ARCH=${WIX_ARCH}" >> $GITHUB_ENV
|
|
267
265
|
fi
|
|
268
266
|
echo "We'll run make with: ${MAKEOPT}"
|
|
@@ -272,7 +270,6 @@ jobs:
|
|
|
272
270
|
echo "MAKEOPT=${MAKEOPT}" >> $GITHUB_ENV
|
|
273
271
|
echo "PERL=${PERL}" >> $GITHUB_ENV
|
|
274
272
|
echo "PYEXTERNALS_PATH=${PYEXTERNALS_PATH}" >> $GITHUB_ENV
|
|
275
|
-
echo "openssl_archs=${openssl_archs}" >> $GITHUB_ENV
|
|
276
273
|
|
|
277
274
|
- name: Get latest stable OpenSSL source
|
|
278
275
|
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
|
@@ -300,7 +297,7 @@ jobs:
|
|
|
300
297
|
export CFLAGS=-DNO_INTERLOCKEDOR64
|
|
301
298
|
fi
|
|
302
299
|
# --libdir=lib is needed so Python can find OpenSSL libraries
|
|
303
|
-
"${PERL}" ./Configure
|
|
300
|
+
"${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS
|
|
304
301
|
|
|
305
302
|
- name: Rename GNU link on Windows
|
|
306
303
|
if: matrix.goal == 'build' && runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
|
@@ -323,11 +320,10 @@ jobs:
|
|
|
323
320
|
run: |
|
|
324
321
|
cd "${OPENSSL_SOURCE_PATH}"
|
|
325
322
|
# install_sw saves us ages processing man pages :-)
|
|
326
|
-
|
|
327
|
-
$
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
#fi
|
|
323
|
+
$MAKE install_sw
|
|
324
|
+
if [[ "${RUNNER_OS}" != "Windows" ]]; then
|
|
325
|
+
echo "LDFLAGS=-L${OPENSSL_INSTALL_PATH}/lib" >> $GITHUB_ENV
|
|
326
|
+
fi
|
|
331
327
|
echo "CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1" >> $GITHUB_ENV
|
|
332
328
|
case $RUNNER_ARCH in
|
|
333
329
|
X64)
|
|
@@ -447,31 +443,36 @@ jobs:
|
|
|
447
443
|
"${PYTHON}" -V
|
|
448
444
|
"${PYTHON}" -c "import ssl; print(f'Using {ssl.OPENSSL_VERSION}')"
|
|
449
445
|
|
|
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
|
-
|
|
455
446
|
- name: Upgrade pip, wheel, etc
|
|
456
447
|
run: |
|
|
457
448
|
curl $curl_retry -O https://bootstrap.pypa.io/get-pip.py
|
|
458
|
-
"$
|
|
459
|
-
"$
|
|
460
|
-
"$
|
|
461
|
-
"$
|
|
462
|
-
|
|
449
|
+
"$PYTHON" get-pip.py
|
|
450
|
+
"$PYTHON" -m pip install --upgrade pip
|
|
451
|
+
"$PYTHON" -m pip install --upgrade wheel
|
|
452
|
+
"$PYTHON" -m pip install --upgrade setuptools
|
|
453
|
+
|
|
454
|
+
- name: Custom wheels for Win arm64
|
|
455
|
+
if: runner.os == 'Windows' && runner.arch == 'ARM64'
|
|
456
|
+
run: |
|
|
457
|
+
latest_lxml_whl=$(curl https://api.github.com/repos/GAM-team/lxml-wheel/releases/latest -s | jq -r .assets.[0].browser_download_url)
|
|
458
|
+
echo "Downloading ${latest_lxml_whl}..."
|
|
459
|
+
curl -O -L "$latest_lxml_whl"
|
|
460
|
+
"$PYTHON" -m pip install lxml*.whl
|
|
461
|
+
latest_crypt_whl=$(curl https://api.github.com/repos/jay0lee/cryptography/releases/latest -s | jq -r .assets.[0].browser_download_url)
|
|
462
|
+
echo "Downloading ${latest_crypt_whl}..."
|
|
463
|
+
curl -O -L "$latest_crypt_whl"
|
|
464
|
+
"$PYTHON" -m pip install cryptography*.whl
|
|
465
|
+
|
|
463
466
|
- name: Install pip requirements
|
|
464
467
|
run: |
|
|
465
|
-
# rust cargo needs this to compile
|
|
466
|
-
export OPENSSL_DIR="$OPENSSL_INSTALL_PATH"
|
|
467
468
|
echo "before anything..."
|
|
468
|
-
"$
|
|
469
|
-
"$
|
|
469
|
+
"$PYTHON" -m pip list
|
|
470
|
+
"$PYTHON" -m pip install --upgrade -r requirements.txt
|
|
470
471
|
echo "after requirements..."
|
|
471
|
-
"$
|
|
472
|
-
"$
|
|
472
|
+
"$PYTHON" -m pip list
|
|
473
|
+
#"$PYTHON" -m pip install --force-reinstall --no-deps --upgrade cryptography
|
|
473
474
|
echo "after everything..."
|
|
474
|
-
"$
|
|
475
|
+
"$PYTHON" -m pip list
|
|
475
476
|
|
|
476
477
|
- name: Install PyInstaller
|
|
477
478
|
if: matrix.goal == 'build'
|
|
@@ -595,14 +596,12 @@ jobs:
|
|
|
595
596
|
echo "GAM Version ${GAMVERSION}"
|
|
596
597
|
echo "GAMVERSION=${GAMVERSION}" >> $GITHUB_ENV
|
|
597
598
|
|
|
598
|
-
- name: Configure service account auth
|
|
599
|
+
- name: Configure user and service account auth
|
|
599
600
|
id: configserviceaccount
|
|
600
601
|
env:
|
|
601
|
-
|
|
602
|
+
oa2: ${{ secrets[format('GAM_GHA_{0}', matrix.jid)] }}
|
|
602
603
|
run: |
|
|
603
|
-
|
|
604
|
-
mv -v "${GAMCFGDIR}/oauth2.txt-gam-gha-${JID}" "${GAMCFGDIR}/oauth2.txt"
|
|
605
|
-
rm -v $GAMCFGDIR/oauth2.txt-gam*
|
|
604
|
+
../.github/actions/decrypt.sh "${GAMCFGDIR}"
|
|
606
605
|
$gam create signjwtserviceaccount
|
|
607
606
|
|
|
608
607
|
- name: Upload gam.exe Windows for signing
|
|
@@ -650,22 +649,29 @@ jobs:
|
|
|
650
649
|
else
|
|
651
650
|
libver="glibc$(ldd --version | awk '/ldd/{print $NF}')"
|
|
652
651
|
fi
|
|
653
|
-
GAM_ARCHIVE="${GITHUB_WORKSPACE}/gam-${GAMVERSION}-linux-$
|
|
652
|
+
GAM_ARCHIVE="${GITHUB_WORKSPACE}/gam-${GAMVERSION}-linux-${arch}-${libver}.tar.xz"
|
|
654
653
|
fi
|
|
655
654
|
echo "GAM Archive ${GAM_ARCHIVE}"
|
|
656
655
|
tar -C "${gampath}/.." --create --verbose --exclude-from "${GITHUB_WORKSPACE}/.github/actions/package_exclusions.txt" --file $GAM_ARCHIVE --xz gam7
|
|
657
656
|
|
|
658
|
-
- name:
|
|
657
|
+
- name: Install Wix on Win ARM64
|
|
658
|
+
if: runner.os == 'Windows' && runner.arch == 'ARM64'
|
|
659
|
+
run: |
|
|
660
|
+
choco install wixtoolset
|
|
661
|
+
|
|
662
|
+
- name: Windows package zip
|
|
659
663
|
if: runner.os == 'Windows' && matrix.goal != 'test'
|
|
660
664
|
run: |
|
|
661
665
|
echo "started in $(pwd)"
|
|
662
666
|
cd "${gampath}/.."
|
|
663
667
|
echo "moved to $(pwd)"
|
|
664
|
-
GAM_ARCHIVE="${GITHUB_WORKSPACE}/gam-${GAMVERSION}-windows-${
|
|
668
|
+
GAM_ARCHIVE="${GITHUB_WORKSPACE}/gam-${GAMVERSION}-windows-${arch}.zip"
|
|
665
669
|
/c/Program\ Files/7-Zip/7z.exe a -tzip "$GAM_ARCHIVE" gam7 "-xr@${GITHUB_WORKSPACE}/.github/actions/package_exclusions.txt" -bb3
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
670
|
+
|
|
671
|
+
- name: Windows package MSI
|
|
672
|
+
if: runner.os == 'Windows' && matrix.goal != 'test'
|
|
673
|
+
run: |
|
|
674
|
+
export MSI_FILENAME="${GITHUB_WORKSPACE}/gam-${GAMVERSION}-windows-${arch}.msi"
|
|
669
675
|
# auto-generate a lib.wxs based on the files PyInstaller created for the lib/ directory
|
|
670
676
|
/c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.14/bin/heat.exe dir "${gampath}/lib" -ke -srd -cg Lib -gg -dr lib -directoryid lib -out lib.wxs
|
|
671
677
|
$PYTHON tools/gen-wix-xml-filelist.py lib.wxs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gam7
|
|
3
|
-
Version: 7.6.
|
|
3
|
+
Version: 7.6.8
|
|
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
|
|
@@ -30,6 +30,7 @@ Requires-Dist: httplib2>=0.17.0
|
|
|
30
30
|
Requires-Dist: lxml
|
|
31
31
|
Requires-Dist: passlib>=1.7.2
|
|
32
32
|
Requires-Dist: pathvalidate
|
|
33
|
+
Requires-Dist: pyscard==2.2.1
|
|
33
34
|
Requires-Dist: python-dateutil
|
|
34
35
|
Provides-Extra: yubikey
|
|
35
36
|
Requires-Dist: yubikey-manager>=5.0; extra == 'yubikey'
|
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
7.06.08
|
|
2
|
+
|
|
3
|
+
Fixed problem where Yubikeys caused a trap.
|
|
4
|
+
|
|
5
|
+
7.06.07
|
|
6
|
+
|
|
7
|
+
Updated private key rotation progress messages in `gam create|use|update project`
|
|
8
|
+
and `gam upload sakey`.
|
|
9
|
+
|
|
10
|
+
Updated `gam use project` to display the following error message when the specifed project
|
|
11
|
+
already has a service account.
|
|
12
|
+
```
|
|
13
|
+
Re-run the command specify a new service account name with: saname <ServiceAccountName>'
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
7.06.06
|
|
17
|
+
|
|
18
|
+
Native support for Windows 11 Arm-based devices.
|
|
19
|
+
|
|
20
|
+
Renamed some MacOS and Linux binary installer files to align on terminology. Everything is "arm64" now, no "aarch64".
|
|
21
|
+
|
|
1
22
|
7.06.05
|
|
2
23
|
|
|
3
24
|
Updated code in `gam delete|update chromepolicy` to handle the `policyTargetKey[additionalTargetKeys]`
|
|
@@ -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.
|
|
28
|
+
__version__ = '7.06.08'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -11384,25 +11384,26 @@ def _waitForSvcAcctCompletion(i):
|
|
|
11384
11384
|
sys.stdout.write(Msg.WAITING_FOR_ITEM_CREATION_TO_COMPLETE_SLEEPING.format(Ent.Singular(Ent.SVCACCT), sleep_time))
|
|
11385
11385
|
time.sleep(sleep_time)
|
|
11386
11386
|
|
|
11387
|
-
def _grantRotateRights(iam, projectId, service_account,
|
|
11387
|
+
def _grantRotateRights(iam, projectId, service_account, account_type='serviceAccount'):
|
|
11388
11388
|
body = {'policy': {'bindings': [{'role': 'roles/iam.serviceAccountKeyAdmin',
|
|
11389
|
-
'members': [f'{account_type}:{
|
|
11389
|
+
'members': [f'{account_type}:{service_account}']}]}}
|
|
11390
11390
|
maxRetries = 10
|
|
11391
|
-
|
|
11392
|
-
|
|
11391
|
+
kvList = [Ent.PROJECT, projectId, Ent.SVCACCT, service_account]
|
|
11392
|
+
printEntityMessage(kvList, Msg.GRANTING_RIGHTS_TO_ROTATE_ITS_OWN_PRIVATE_KEY.format('Granting'))
|
|
11393
11393
|
for retry in range(1, maxRetries+1):
|
|
11394
11394
|
try:
|
|
11395
11395
|
callGAPI(iam.projects().serviceAccounts(), 'setIamPolicy',
|
|
11396
11396
|
throwReasons=[GAPI.INVALID_ARGUMENT],
|
|
11397
11397
|
resource=f'projects/{projectId}/serviceAccounts/{service_account}', body=body)
|
|
11398
|
+
printEntityMessage(kvList, Msg.GRANTING_RIGHTS_TO_ROTATE_ITS_OWN_PRIVATE_KEY.format('Granted'))
|
|
11398
11399
|
return True
|
|
11399
11400
|
except GAPI.invalidArgument as e:
|
|
11400
|
-
entityActionFailedWarning(
|
|
11401
|
+
entityActionFailedWarning(kvList, str(e))
|
|
11401
11402
|
if 'does not exist' not in str(e) or retry == maxRetries:
|
|
11402
11403
|
return False
|
|
11403
11404
|
_waitForSvcAcctCompletion(retry)
|
|
11404
11405
|
except Exception as e:
|
|
11405
|
-
entityActionFailedWarning(
|
|
11406
|
+
entityActionFailedWarning(kvList, str(e))
|
|
11406
11407
|
return False
|
|
11407
11408
|
|
|
11408
11409
|
def _createOauth2serviceJSON(httpObj, projectInfo, svcAcctInfo, create_key=True):
|
|
@@ -11420,6 +11421,7 @@ def _createOauth2serviceJSON(httpObj, projectInfo, svcAcctInfo, create_key=True)
|
|
|
11420
11421
|
return False
|
|
11421
11422
|
except GAPI.alreadyExists as e:
|
|
11422
11423
|
entityActionFailedWarning([Ent.PROJECT, projectInfo['projectId'], Ent.SVCACCT, svcAcctInfo['name']], str(e))
|
|
11424
|
+
writeStderr(Msg.RERUN_THE_COMMAND_AND_SPECIFY_A_NEW_SANAME)
|
|
11423
11425
|
return False
|
|
11424
11426
|
GM.Globals[GM.SVCACCT_SCOPES_DEFINED] = False
|
|
11425
11427
|
if create_key and not doProcessSvcAcctKeys(mode='retainexisting', iam=iam,
|
|
@@ -11428,7 +11430,7 @@ def _createOauth2serviceJSON(httpObj, projectInfo, svcAcctInfo, create_key=True)
|
|
|
11428
11430
|
clientId=service_account['uniqueId']):
|
|
11429
11431
|
return False
|
|
11430
11432
|
sa_email = service_account['name'].rsplit('/', 1)[-1]
|
|
11431
|
-
return _grantRotateRights(iam, projectInfo['projectId'], sa_email
|
|
11433
|
+
return _grantRotateRights(iam, projectInfo['projectId'], sa_email)
|
|
11432
11434
|
|
|
11433
11435
|
def _createClientSecretsOauth2service(httpObj, login_hint, appInfo, projectInfo, svcAcctInfo, create_key=True):
|
|
11434
11436
|
def _checkClientAndSecret(csHttpObj, client_id, client_secret):
|
|
@@ -11921,9 +11923,7 @@ def doUpdateProject():
|
|
|
11921
11923
|
continue
|
|
11922
11924
|
iam = getAPIService(API.IAM, httpObj)
|
|
11923
11925
|
_getSvcAcctData() # needed to read in GM.OAUTH2SERVICE_JSON_DATA
|
|
11924
|
-
_grantRotateRights(iam, projectId,
|
|
11925
|
-
GM.Globals[GM.OAUTH2SERVICE_JSON_DATA]['client_email'],
|
|
11926
|
-
GM.Globals[GM.OAUTH2SERVICE_JSON_DATA]['client_email'])
|
|
11926
|
+
_grantRotateRights(iam, projectId, GM.Globals[GM.OAUTH2SERVICE_JSON_DATA]['client_email'])
|
|
11927
11927
|
Ind.Decrement()
|
|
11928
11928
|
|
|
11929
11929
|
# gam delete project [[admin] <EmailAddress>] [<ProjectIDEntity>]
|
|
@@ -12786,7 +12786,7 @@ def doUploadSvcAcctKeys():
|
|
|
12786
12786
|
iam = getAPIService(API.IAM, httpObj)
|
|
12787
12787
|
if doProcessSvcAcctKeys(mode='upload', iam=iam):
|
|
12788
12788
|
sa_email = GM.Globals[GM.OAUTH2SERVICE_JSON_DATA]['client_email']
|
|
12789
|
-
_grantRotateRights(iam, GM.Globals[GM.OAUTH2SERVICE_JSON_DATA]['project_id'], sa_email
|
|
12789
|
+
_grantRotateRights(iam, GM.Globals[GM.OAUTH2SERVICE_JSON_DATA]['project_id'], sa_email)
|
|
12790
12790
|
sys.stdout.write(Msg.YOUR_GAM_PROJECT_IS_CREATED_AND_READY_TO_USE)
|
|
12791
12791
|
|
|
12792
12792
|
# gam delete sakeys <ServiceAccountKeyList>
|
|
@@ -72,7 +72,7 @@ Please go to:
|
|
|
72
72
|
24. Paste it at the "Enter your Client Secret: " prompt in your terminal
|
|
73
73
|
25. Press return/enter in your terminal
|
|
74
74
|
26. Switch back to the browser
|
|
75
|
-
27. Click "
|
|
75
|
+
27. Click "OK"
|
|
76
76
|
28. These steps are complete
|
|
77
77
|
'''
|
|
78
78
|
ENTER_YOUR_CLIENT_ID = '\nEnter your Client ID: '
|
|
@@ -287,6 +287,7 @@ GAM_OUT_OF_MEMORY = 'GAM has run out of memory. If this is a large Google Worksp
|
|
|
287
287
|
GENERATING_NEW_PRIVATE_KEY = 'Generating new private key'
|
|
288
288
|
GETTING = 'Getting'
|
|
289
289
|
GETTING_ALL = 'Getting all'
|
|
290
|
+
GRANTING_RIGHTS_TO_ROTATE_ITS_OWN_PRIVATE_KEY = '{0} rights to rotate its own private key'
|
|
290
291
|
GOOGLE_DELEGATION_ERROR = 'Google delegation error, delegator and delegate both exist and are valid for delegation'
|
|
291
292
|
GOT = 'Got'
|
|
292
293
|
GROUP_MAPS_TO_MULTIPLE_OUS = 'File: {0}, Group: {1} references multiple OUs: {2}'
|
|
@@ -294,13 +295,12 @@ GROUP_MAPS_TO_OU_INVALID_ROW = 'File: {0}, Invalid row, must contain non-blank <
|
|
|
294
295
|
GUARDIAN_INVITATION_STATUS_NOT_PENDING = 'Guardian invitation status is not PENDING'
|
|
295
296
|
HAS_CHILD_ORGS = 'Has child {0}'
|
|
296
297
|
HAS_INVALID_FORMAT = '{0}: {1}, Has invalid format'
|
|
297
|
-
HAS_RIGHTS_TO_ROTATE_OWN_PRIVATE_KEY = 'Giving account {0} rights to rotate {1} private key'
|
|
298
298
|
HEADER_NOT_FOUND_IN_CSV_HEADERS = 'Header "{0}" not found in CSV headers of "{1}".'
|
|
299
299
|
HELP_SYNTAX = 'Help: Syntax in file {0}\n'
|
|
300
300
|
HELP_WIKI = 'Help: Documentation is at {0}\n'
|
|
301
301
|
IGNORED = 'Ignored'
|
|
302
302
|
INSTRUCTIONS_CLIENT_SECRETS_JSON = 'Please run\n\ngam create|use project\ngam oauth create\n\nto create and authorize a Client account.\n'
|
|
303
|
-
INSTRUCTIONS_OAUTH2SERVICE_JSON = 'Please run\n\ngam create|use project\ngam user <user>
|
|
303
|
+
INSTRUCTIONS_OAUTH2SERVICE_JSON = 'Please run\n\ngam create|use project\ngam user <user> update serviceaccount\n\nto create and authorize a Service account.\n'
|
|
304
304
|
INSUFFICIENT_PERMISSIONS_TO_PERFORM_TASK = 'Insufficient permissions to perform this task'
|
|
305
305
|
INTER_BATCH_WAIT_INCREASED = 'inter_batch_wait increased to {0:.2f}'
|
|
306
306
|
INVALID = 'Invalid'
|
|
@@ -468,6 +468,10 @@ REFUSING_TO_DEPROVISION_DEVICES = 'Refusing to deprovision {0} devices because a
|
|
|
468
468
|
REPLY_TO_CUSTOM_REQUIRES_EMAIL_ADDRESS = 'replyto REPLY_TO_CUSTOM requires customReplyTo <EmailAddress>'
|
|
469
469
|
REQUEST_COMPLETED_NO_FILES = 'Request completed but no results/files were returned, try requesting again'
|
|
470
470
|
REQUEST_NOT_COMPLETE = 'Request needs to be completed before downloading, current status is: {0}'
|
|
471
|
+
RERUN_THE_COMMAND_AND_SPECIFY_A_NEW_SANAME = """
|
|
472
|
+
Re-run the command specify a new service account name with: saname <ServiceAccountName>
|
|
473
|
+
See: https://github.com/GAM-team/GAM/wiki/Authorization#advanced-use
|
|
474
|
+
"""
|
|
471
475
|
RESOURCE_CAPACITY_FLOOR_REQUIRED = 'Options "capacity <Number>" (<Number> > 0) and "floor <String>" required'
|
|
472
476
|
RESOURCE_FLOOR_REQUIRED = 'Option "floor <String>" required'
|
|
473
477
|
RESULTS_TOO_LARGE_FOR_GOOGLE_SPREADSHEET = 'Results are too large for Google Spreadsheets. Uploading as a regular CSV file.'
|
|
@@ -8,7 +8,7 @@ GAM installation script.
|
|
|
8
8
|
OPTIONS:
|
|
9
9
|
-h show help.
|
|
10
10
|
-d Directory where gam folder will be installed. Default is \$HOME/bin/
|
|
11
|
-
-a Architecture to install (
|
|
11
|
+
-a Architecture to install (x86_64, arm64). Default is to detect your arch with "uname -m".
|
|
12
12
|
-o OS we are running (linux, macos). Default is to detect your OS with "uname -s".
|
|
13
13
|
-b OS version. Default is to detect on MacOS and Linux.
|
|
14
14
|
-l Just upgrade GAM to latest version. Skips project creation and auth.
|
|
@@ -194,7 +194,7 @@ fi
|
|
|
194
194
|
case $gamos in
|
|
195
195
|
[lL]inux)
|
|
196
196
|
gamos="linux"
|
|
197
|
-
download_urls=$(echo -e "$download_urls" | grep "
|
|
197
|
+
download_urls=$(echo -e "$download_urls" | grep -e "-linux-")
|
|
198
198
|
if [ "$osversion" == "" ]; then
|
|
199
199
|
this_glibc_ver=$(ldd --version | awk '/ldd/{print $NF}')
|
|
200
200
|
else
|
|
@@ -203,7 +203,7 @@ case $gamos in
|
|
|
203
203
|
echo "This Linux distribution uses glibc $this_glibc_ver"
|
|
204
204
|
case $gamarch in
|
|
205
205
|
x86_64)
|
|
206
|
-
download_urls=$(echo -e "$download_urls" | grep "
|
|
206
|
+
download_urls=$(echo -e "$download_urls" | grep -e "-x86_64-")
|
|
207
207
|
gam_x86_64_glibc_vers=$(echo -e "$download_urls" | \
|
|
208
208
|
grep --only-matching 'glibc[0-9\.]*\.tar\.xz$' \
|
|
209
209
|
| cut -c 6-9 )
|
|
@@ -218,7 +218,7 @@ case $gamos in
|
|
|
218
218
|
download_url=$(echo -e "$download_urls" | grep "$useglibc")
|
|
219
219
|
;;
|
|
220
220
|
arm|arm64|aarch64)
|
|
221
|
-
download_urls=$(echo -e "$download_urls" | grep "
|
|
221
|
+
download_urls=$(echo -e "$download_urls" | grep -e "-arm64-\|-aarch64-")
|
|
222
222
|
gam_arm64_glibc_vers=$(echo -e "$download_urls" | \
|
|
223
223
|
grep --only-matching 'glibc[0-9\.]*\.tar\.xz$' | \
|
|
224
224
|
cut -c 6-9)
|
|
@@ -243,13 +243,13 @@ case $gamos in
|
|
|
243
243
|
# override osversion only if it wasn't set by cli arguments
|
|
244
244
|
osversion=${osversion:-${currentversion}}
|
|
245
245
|
# override osversion only if it wasn't set by cli arguments
|
|
246
|
-
download_urls=$(echo -e "$download_urls" | grep "
|
|
246
|
+
download_urls=$(echo -e "$download_urls" | grep -e "-macos")
|
|
247
247
|
case $gamarch in
|
|
248
248
|
x86_64)
|
|
249
|
-
archgrep="
|
|
249
|
+
archgrep="-x86_64"
|
|
250
250
|
;;
|
|
251
251
|
arm|arm64|aarch64)
|
|
252
|
-
archgrep="
|
|
252
|
+
archgrep="-arm64\|-aarch64"
|
|
253
253
|
;;
|
|
254
254
|
*)
|
|
255
255
|
echo_red "ERROR: this installer currently only supports x86_64 and arm64 MacOS. Looks like you're running on ${gamarch}. Exiting."
|
|
@@ -257,13 +257,13 @@ case $gamos in
|
|
|
257
257
|
;;
|
|
258
258
|
esac
|
|
259
259
|
gam_macos_urls=$(echo -e "$download_urls" | \
|
|
260
|
-
grep
|
|
260
|
+
grep -e $archgrep)
|
|
261
261
|
versionless_urls=$(echo -e "$gam_macos_urls" | \
|
|
262
|
-
grep "
|
|
262
|
+
grep -e "-macos-")
|
|
263
263
|
if [ "$versionless_urls" == "" ]; then
|
|
264
264
|
# versions after 7.00.38 include MacOS version info
|
|
265
265
|
gam_macos_vers=$(echo -e "$gam_macos_urls" | \
|
|
266
|
-
grep --only-matching '
|
|
266
|
+
grep --only-matching -e '-macos[0-9\.]*' | \
|
|
267
267
|
cut -c 7-10)
|
|
268
268
|
for gam_mac_ver in $gam_macos_vers; do
|
|
269
269
|
if version_gt $currentversion $gam_mac_ver; then
|
|
@@ -281,13 +281,12 @@ case $gamos in
|
|
|
281
281
|
case $gamarch in
|
|
282
282
|
x86_64)
|
|
283
283
|
minimum_version=13
|
|
284
|
-
download_url=$(echo -e "$download_urls" | grep "\-x86_64")
|
|
285
284
|
;;
|
|
286
285
|
arm|arm64|aarch64)
|
|
287
|
-
download_url=$(echo -e "$download_urls" | grep "\-aarch64")
|
|
288
286
|
minimum_version=14
|
|
289
287
|
;;
|
|
290
288
|
esac
|
|
289
|
+
download_url=$(echo -e "$download_urls" | grep -e $archgrep)
|
|
291
290
|
if version_gt "$osversion" "$minimum_version"; then
|
|
292
291
|
echo_green "You are running MacOS ${osversion}, good. Downloading GAM from ${download_url}."
|
|
293
292
|
else
|
|
@@ -304,7 +303,7 @@ case $gamos in
|
|
|
304
303
|
gamos="windows"
|
|
305
304
|
echo "You are running Windows"
|
|
306
305
|
download_url=$(echo -e "$download_urls" | \
|
|
307
|
-
grep "
|
|
306
|
+
grep -e "-windows-" | \
|
|
308
307
|
grep ".zip")
|
|
309
308
|
;;
|
|
310
309
|
*)
|
|
@@ -283,7 +283,7 @@ You can skip these steps if you know that untrusted third-party apps are allowed
|
|
|
283
283
|
* `<ServiceAccountDisplayName>` - `<ProjectName>`
|
|
284
284
|
* `<ServiceAccountDescription>` - `<ServiceAccountDisplayName>`
|
|
285
285
|
|
|
286
|
-
### Basic
|
|
286
|
+
### Basic Create
|
|
287
287
|
Create a project with default values for the project and service account.
|
|
288
288
|
```
|
|
289
289
|
gam create project [<EmailAddress>] [<ProjectID>]
|
|
@@ -291,7 +291,7 @@ gam create project [<EmailAddress>] [<ProjectID>]
|
|
|
291
291
|
* `<EmailAddress>` - Google Workspace admin/GCP project manager; if omitted, you will be prompted for the address
|
|
292
292
|
* `<ProjectID>` - A new Google project ID; if omitted, a default value will be used
|
|
293
293
|
|
|
294
|
-
### Advanced
|
|
294
|
+
### Advanced Create
|
|
295
295
|
Create a project with user-specified values for the project and service account.
|
|
296
296
|
```
|
|
297
297
|
gam create project [admin <EmailAddress>] [project <ProjectID>]
|
|
@@ -326,7 +326,7 @@ Use an existing project to create and download two files: `client_secrets.json`
|
|
|
326
326
|
* `<ServiceAccountDisplayName>` - `<ProjectName>`
|
|
327
327
|
* `<ServiceAccountDescription>` - `<ServiceAccountDisplayName>`
|
|
328
328
|
|
|
329
|
-
### Basic
|
|
329
|
+
### Basic Use
|
|
330
330
|
Use an existing uninitialized/uncredentialed project and configure it to be a GAM project; this typically used when
|
|
331
331
|
the GCP administrators have created a basic project because project creation is not available for most users.
|
|
332
332
|
|
|
@@ -338,12 +338,13 @@ gam use project [<EmailAddress>] [project <ProjectID>]
|
|
|
338
338
|
* `<EmailAddress>` - Google Workspace admin/GCP project manager; if omitted, you will be prompted for the address
|
|
339
339
|
* `<ProjectID>` - An existing Google project ID; if omitted, you will be prompted for the ID
|
|
340
340
|
|
|
341
|
-
### Advanced
|
|
341
|
+
### Advanced Use
|
|
342
342
|
Use an existing project with user-specified values for the service account. If the project is already
|
|
343
343
|
a GAM project you must use `saname <ServiceAccountName>` as the existing service account information
|
|
344
344
|
can not be re-downloaded.
|
|
345
345
|
```
|
|
346
346
|
gam use project [admin <EmailAddress>] [project <ProjectID>]
|
|
347
|
+
[appname <String>] [supportemail <EmailAddress>]
|
|
347
348
|
[saname <ServiceAccountName>] [sadisplayname <ServiceAccountDisplayName>]
|
|
348
349
|
[sadescription <ServiceAccountDescription>]
|
|
349
350
|
[(algorithm KEY_ALG_RSA_1024|KEY_ALG_RSA_2048)|
|