diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5d50d063..d60c6458 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -90,7 +90,7 @@ jobs: with: path: | cache.tar.xz - key: gam-${{ matrix.jid }}-20250323 + key: gam-${{ matrix.jid }}-20250408 - name: Untar Cache archive if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit == 'true' @@ -548,11 +548,12 @@ jobs: sudo apt-get -qq --yes update # arm64 needs to build a wheel and needs scons to build sudo apt-get -qq --yes install scons - "${PYTHON}" -m pip install --upgrade patchelf==0.17.2.1 - "${PYTHON}" -m pip install --upgrade staticx - "${PYTHON}" -m pip install --upgrade pyelftools==0.31 + "${PYTHON}" -m pip install --upgrade patchelf-wrapper + # "${PYTHON}" -m pip install --upgrade staticx + # install latest github src for staticx + "${PYTHON}" -m pip install --upgrade "git+https://github.com/JonathonReinhart/staticx" - - name: Make StaticX + - name: Make StaticX GAM build if: matrix.staticx == 'yes' run: | case $RUNNER_ARCH in diff --git a/README.md b/README.md index bbc74d84..ae8f44b7 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,9 @@ # Introduction -GAMADV-XTD3 is a free, open source command line tool for Google Workspace (formerly G Suite) Administrators to manage domain and user settings quickly and easily. +GAM is a command line tool for Google Workspace admins to manage domain and user settings quickly and easily. -GAMADV-XTD3 is built with Python 3. +GAMADV-XTD3 has been replaced with GAM7. -This page provides simple instructions for downloading, installing and starting to use GAMADV-XTD3. - -GAMADV-XTD3 runs on all versions of Google Workspace; Google Apps Free Edition has limited API support and not all GAM commands work. - -GAMADV-XTD3 is a rewrite/extension of Jay Lee's [GAM], without his efforts, this version wouldn't exist. - -GAMADV-XTD3 is backwards compatible with [GAM], meaning that if your command works with regular GAM, it will also work with GAMADV-XTD3. There may be differences in output, but the syntax is compatible. +* [How to Uograde GAMADV-XTD3 to GAM7](How-to-Upgrade-GAMADV-XTD3-to-GAM7) # Documentation Documentation for GAMADV-XTD3 is hosted in the [GitHub Wiki] and in Gam*.txt files. diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index b7398740..a31473aa 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,3 +1,10 @@ +7.06.00 + +Upgraded to OpenSSL 3.5.0. + +Fixed bug in `gam print cigroups` where `createTime`, `updateTime` and `statusTime` +were not converted according to `gam.cfg timezone`. + 7.05.22 Updated progress messages for `gam print filelist|filecounts|filesharecounts|filetree select shareddriveid ` diff --git a/src/gam/__init__.py b/src/gam/__init__.py index c8bdc5de..b343aa90 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -25,7 +25,7 @@ https://github.com/taers232c/GAMADV-XTD3/wiki """ __author__ = 'Ross Scroggs ' -__version__ = '7.05.22' +__version__ = '7.06.00' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' #pylint: disable=wrong-import-position @@ -33563,14 +33563,14 @@ def doPrintGroups(): groupSettings.pop(key) if FJQC.formatJSON: row['email'] = groupEntity['email'] - row['JSON'] = json.dumps(groupEntity, ensure_ascii=False, sort_keys=True) + row['JSON'] = json.dumps(cleanJSON(groupEntity), ensure_ascii=False, sort_keys=True) if rolesSet and groupMembers is not None: row['JSON-members'] = json.dumps(groupMembers, ensure_ascii=False, sort_keys=True) if isinstance(groupSettings, dict): - row['JSON-settings'] = json.dumps(groupSettings, ensure_ascii=False, sort_keys=True) + row['JSON-settings'] = json.dumps(cleanJSON(groupSettings), ensure_ascii=False, sort_keys=True) groupCloudIdentity = ciGroups.get(row['email'], {}) if groupCloudIdentity: - row['JSON-cloudIdentity'] = json.dumps(groupCloudIdentity, ensure_ascii=False, sort_keys=True) + row['JSON-cloudIdentity'] = json.dumps(cleanJSON(groupCloudIdentity, timeObjects=CIGROUP_TIME_OBJECTS), ensure_ascii=False, sort_keys=True) csvPF.WriteRowNoFilter(row) return for field in groupFieldsLists['cd']: @@ -35935,7 +35935,7 @@ def doPrintCIGroups(): row = {} if FJQC.formatJSON: row['email'] = groupEntity['groupKey']['id'].lower() - row['JSON'] = json.dumps(groupEntity, ensure_ascii=False, sort_keys=True) + row['JSON'] = json.dumps(cleanJSON(groupEntity, timeObjects=CIGROUP_TIME_OBJECTS), ensure_ascii=False, sort_keys=True) if rolesSet and groupMembers is not None: row['JSON-members'] = json.dumps(groupMembers, ensure_ascii=False, sort_keys=True) csvPF.WriteRowNoFilter(row)