(self)
| 227 | console.print(f"Successfully installed {handle}", style="bold green") |
| 228 | |
| 229 | def login(self) -> None: |
| 230 | get_user_id = _require_get_user_id() |
| 231 | login_response = self.plus_api_client.login_to_tool_repository( |
| 232 | user_identifier=get_user_id() |
| 233 | ) |
| 234 | |
| 235 | if login_response.status_code != 200: |
| 236 | console.print( |
| 237 | "Authentication failed. Verify if the currently active organization can access the tool repository, and run 'crewai login' again.", |
| 238 | style="bold red", |
| 239 | ) |
| 240 | try: |
| 241 | console.print( |
| 242 | f"[{login_response.status_code} error - {login_response.json().get('message', 'Unknown error')}]", |
| 243 | style="bold red italic", |
| 244 | ) |
| 245 | except JSONDecodeError: |
| 246 | console.print( |
| 247 | f"[{login_response.status_code} error - Unknown error - Invalid JSON response]", |
| 248 | style="bold red italic", |
| 249 | ) |
| 250 | raise SystemExit |
| 251 | |
| 252 | login_response_json = login_response.json() |
| 253 | |
| 254 | settings = Settings() |
| 255 | settings.tool_repository_username = login_response_json["credential"][ |
| 256 | "username" |
| 257 | ] |
| 258 | settings.tool_repository_password = login_response_json["credential"][ |
| 259 | "password" |
| 260 | ] |
| 261 | settings.org_uuid = login_response_json["current_organization"]["uuid"] |
| 262 | settings.org_name = login_response_json["current_organization"]["name"] |
| 263 | settings.dump() |
| 264 | |
| 265 | def _add_package(self, tool_details: dict[str, Any]) -> None: |
| 266 | is_from_pypi = tool_details.get("source", None) == "pypi" |
no test coverage detected