Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion src/google/adk/cli/cli_deploy.py
Original file line number Diff line number Diff line change
Expand Up @@ -764,6 +764,17 @@ def to_agent_engine(
app_name = os.path.basename(agent_folder)
display_name = display_name or app_name
parent_folder = os.path.dirname(agent_folder)

# Validate folder name is a valid Python identifier for module imports
if not app_name.isidentifier():
click.secho(
f'Error: Agent folder name "{app_name}" must be a valid identifier '
'consisting of letters, digits, and underscores.',
fg='red',
err=True,
)
return

adk_app_object = adk_app_object or 'root_agent'
if adk_app_object not in ['root_agent', 'app']:
click.echo(
Expand All @@ -789,7 +800,20 @@ def to_agent_engine(
os.chdir(parent_folder)
did_change_cwd = True
tmp_app_name = app_name + '_tmp' + datetime.now().strftime('%Y%m%d_%H%M%S')
temp_folder = temp_folder or tmp_app_name

# Validate temp_folder if provided by user
if temp_folder:
if not temp_folder.isidentifier():
click.secho(
f'Error: The folder name "{temp_folder}" must be a valid identifier '
'consisting of letters, digits, and underscores.',
fg='red',
err=True,
)
return
else:
temp_folder = tmp_app_name

agent_src_path = os.path.join(parent_folder, temp_folder)
click.echo(f'Staging all files in: {agent_src_path}')
# remove agent_src_path if it exists
Expand Down