Prefer nested deployment identifiers

This commit is contained in:
Joao Moura
2026-06-26 00:49:14 -07:00
parent baea507b4b
commit 1d13d2b8fe
2 changed files with 21 additions and 4 deletions

View File

@@ -17,7 +17,8 @@ from crewai_cli.utils import fetch_and_json_env_file, get_project_name
console = Console()
_MISSING_LOCKFILE_ERROR_CODES = {"missing_lockfile"}
_DEPLOYMENT_IDENTIFIER_KEYS = ("deployment_id", "deploymentId", "id", "uuid")
_DEPLOYMENT_ID_KEYS = ("deployment_id", "deploymentId")
_DEPLOYMENT_FALLBACK_IDENTIFIER_KEYS = ("id", "uuid")
def _run_predeploy_validation(
@@ -85,18 +86,24 @@ def _env_summary(env_vars: dict[str, str]) -> str:
def _deployment_identifier(json_response: dict[str, Any]) -> str | None:
"""Return the best available identifier for a deployment show URL."""
for key in _DEPLOYMENT_IDENTIFIER_KEYS:
deployment = json_response.get("deployment")
for key in _DEPLOYMENT_ID_KEYS:
value = json_response.get(key)
if value:
return str(value)
deployment = json_response.get("deployment")
if isinstance(deployment, dict):
for key in _DEPLOYMENT_IDENTIFIER_KEYS:
for key in _DEPLOYMENT_ID_KEYS + _DEPLOYMENT_FALLBACK_IDENTIFIER_KEYS:
value = deployment.get(key)
if value:
return str(value)
for key in _DEPLOYMENT_FALLBACK_IDENTIFIER_KEYS:
value = json_response.get(key)
if value:
return str(value)
return None

View File

@@ -177,6 +177,16 @@ def test_deployment_page_url_prefers_deployment_id():
)
def test_deployment_page_url_prefers_nested_deployment_id_over_crew_uuid():
assert (
deploy_main._deployment_page_url(
"https://app.crewai.com",
{"uuid": "crew-uuid", "deployment": {"deployment_id": 128687}},
)
== "https://app.crewai.com/crewai_plus/deployments/128687"
)
def test_deployment_page_url_falls_back_to_nested_uuid():
assert (
deploy_main._deployment_page_url(