When calling google-play actions with empty track or package name, then the invocation can fail because there is no validation that ensures values for those options. For example
$ google-play get-latest-build-number --package-name "${UNDEFINED_PACKAGE_NAME}" --tracks "${UNDEFINED_TRACK_NAME}"
Get package "None" latest build number from track ""
Executing GooglePlay action get-latest-build-number failed unexpectedly. Detailed logs are available at "/var/folders/wr/c44p23x10f302_kfbj32z0p80000gn/T/codemagic-24-10-23.log". To see more details about the error, add `--verbose` command line option.
fails with
Traceback (most recent call last):
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/cli/cli_app.py", line 206, in invoke_cli
CliApp._running_app._invoke_action(args)
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/cli/cli_app.py", line 163, in _invoke_action
return cli_action(**action_args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/cli/cli_app.py", line 458, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/tools/google_play/actions/get_latest_build_number_action.py", line 33, in get_latest_build_number
package_tracks = self.list_tracks(package_name, should_print=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/cli/cli_app.py", line 458, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/tools/google_play/action_groups/tracks_action_group.py", line 68, in list_tracks
tracks = self.api_client.list_tracks(package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/google_play/api_client.py", line 152, in list_tracks
with self.use_app_edit(package_name) as _edit:
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/google_play/api_client.py", line 111, in use_app_edit
edit = self.create_edit(package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/codemagic/google_play/api_client.py", line 85, in create_edit
edit_request = self.edits_service.insert(body={}, packageName=package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/priit/.pyenv/versions/3.12.0/lib/python3.12/site-packages/googleapiclient/discovery.py", line 1063, in method
raise TypeError('Missing required parameter "%s"' % name)
TypeError: Missing required parameter "packageName"
This PR adds a restriction to relevant CLI argument which cannot be used with empty values. Updated usage is
When calling
google-play
actions with empty track or package name, then the invocation can fail because there is no validation that ensures values for those options. For examplefails with
This PR adds a restriction to relevant CLI argument which cannot be used with empty values. Updated usage is
Updated actions:
google-play tracks get
,google-play tracks list
,google-play tracks promote-release
,google-play get-latest-build-number
.