Skip to content
Open
Changes from all commits
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
20 changes: 19 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,14 @@ 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():
raise click.ClickException(
f'Agent folder name "{app_name}" must be a valid identifier '
'consisting of letters, digits, and underscores.'
)

adk_app_object = adk_app_object or 'root_agent'
if adk_app_object not in ['root_agent', 'app']:
click.echo(
Expand All @@ -789,7 +797,17 @@ 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():
raise click.ClickException(
f'The folder name "{temp_folder}" must be a valid identifier '
'consisting of letters, digits, and underscores.'
)
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