Skip to content

Conversation

@shaikhmudassir
Copy link

@shaikhmudassir shaikhmudassir commented Jan 23, 2026

Added early validation for agent folder names and temp_folder to ensure they are valid Python identifiers before deployment. This surfaces clear, actionable errors instead of cryptic syntax failures when folder names include characters
like dashes.

Fixes #2902

Please ensure you have read the contribution guide before creating a pull request.

Link to Issue or Description of Change

1. Link to an existing issue (if applicable):

  • Closes: #issue_number
  • Related: #issue_number

2. Or, if no issue exists, describe the change:

If applicable, please follow the issue templates to provide as much detail as
possible.

Problem:
adk deploy agent_engine fails with a cryptic "invalid syntax" error from Agent Engine, when the agent folder name contains characters that are invalid in Python module names (e.g., dashes).

Solution:
Add early validation in to_agent_engine to ensure the agent folder name and the optional temp_folder are valid Python identifiers (using isidentifier()). If they are invalid, the CLI exits early with a clear error message, instead of letting Agent Engine fail later with an unreadable syntax error.

Testing Plan

Please describe the tests that you ran to verify your changes. This is required
for all PRs that are not small documentation or typo fixes.

Unit Tests:

  • I have added or updated unit tests for my change.
  • All unit tests pass locally.

I ran pytest ./tests/unittests and 3983 passed, 2168 warnings in 53.86s

Manual End-to-End (E2E) Tests:

  1. Invalid agent folder name (with dash):

    adk deploy agent_engine --api_key=MY_API_KEY agent-folder-name

    Observed:

    • CLI prints a clear validation error immediately:
      Error: Agent folder name "agent-folder-name" must be a valid identifier consisting of letters, digits, and underscores.
    • This prevents the issue described in "adk deploy agent_engine" fails if the agent folder name contains dashes. #2902 where the error would occur later when Agent Engine tries to import: from agent-folder-name.agent import root_agent
  2. Valid agent folder name:

    adk deploy agent_engine --api_key=MY_API_KEY agent_folder_name

    Observed:

    • Deployment proceeds past validation.

Checklist

  • I have read the CONTRIBUTING.md document.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • I have manually tested my changes end-to-end.
  • Any dependent changes have been merged and published in downstream modules.

Additional context

Add any other context or screenshots about the feature request here.

Add early validation for agent folder names and temp_folder to ensure they are valid Python identifiers before deployment. This surfaces clear, actionable errors instead of cryptic syntax failures when folder names include characters like dashes.

Fixes google#2902
@google-cla
Copy link

google-cla bot commented Jan 23, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @shaikhmudassir, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the adk deploy agent_engine command by introducing robust validation for agent folder names and temporary deployment directories. By checking that these names conform to Python's identifier rules early in the deployment process, the system can now provide users with immediate, understandable error messages, significantly improving the debugging experience and preventing later, more obscure failures during module import.

Highlights

  • Early Validation for Agent Folder Names: Implemented validation for agent folder names (app_name) to ensure they are valid Python identifiers before deployment. This prevents runtime errors caused by invalid characters like dashes.
  • temp_folder Validation: Added validation for the temp_folder parameter, ensuring it also adheres to Python identifier rules if explicitly provided by the user.
  • Improved Error Messaging: Replaced cryptic "invalid syntax" errors with clear, actionable error messages when invalid folder names are detected, guiding users to correct the issue immediately.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@adk-bot adk-bot added the tools [Component] This issue is related to tools label Jan 23, 2026
@adk-bot
Copy link
Collaborator

adk-bot commented Jan 23, 2026

Response from ADK Triaging Agent

Hello @shaikhmudassir, thank you for creating this PR!

Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). You can visit https://cla.developers.google.com/ to see your current agreements or to sign a new one.

This information will help reviewers to review your PR more efficiently. Thanks!

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces important validation for agent folder names and temporary folder names to ensure they are valid Python identifiers. This is a great improvement as it prevents cryptic downstream errors and provides clear, actionable feedback to the user. My main suggestion is to use click.ClickException for error handling instead of printing to stderr and returning. This aligns better with CLI best practices by ensuring the command exits with a non-zero status code on failure, which is important for scripting and automation.

shaikhmudassir and others added 2 commits January 23, 2026 17:03
Replace click.secho + return with click.ClickException for better
CLI error handling and shell scripting compatibility.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tools [Component] This issue is related to tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"adk deploy agent_engine" fails if the agent folder name contains dashes.

2 participants