From affbc49b084a2142a8fc2d9251acc99a719134ff Mon Sep 17 00:00:00 2001 From: Robert Brennan Date: Tue, 7 Jan 2025 11:42:41 -0500 Subject: [PATCH] fix for clone repo (#6116) --- openhands/runtime/base.py | 6 ++++-- openhands/server/routes/manage_conversations.py | 4 +--- openhands/server/session/agent_session.py | 5 ++++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/openhands/runtime/base.py b/openhands/runtime/base.py index b2fbd53b2100..c079aae92fd1 100644 --- a/openhands/runtime/base.py +++ b/openhands/runtime/base.py @@ -210,9 +210,11 @@ async def _handle_action(self, event: Action) -> None: source = event.source if event.source else EventSource.AGENT self.event_stream.add_event(observation, source) # type: ignore[arg-type] - def clone_repo(self, github_token: str | None, selected_repository: str | None): + def clone_repo(self, github_token: str, selected_repository: str): if not github_token or not selected_repository: - return + raise ValueError( + 'github_token and selected_repository must be provided to clone a repository' + ) url = f'https://{github_token}@github.com/{selected_repository}.git' dir_name = selected_repository.split('/')[1] # add random branch name to avoid conflicts diff --git a/openhands/server/routes/manage_conversations.py b/openhands/server/routes/manage_conversations.py index 235b5801f24d..6d23ae016913 100644 --- a/openhands/server/routes/manage_conversations.py +++ b/openhands/server/routes/manage_conversations.py @@ -30,9 +30,7 @@ class InitSessionRequest(BaseModel): github_token: str | None = None - latest_event_id: int = -1 selected_repository: str | None = None - args: dict | None = None @app.post('/conversations') @@ -53,7 +51,7 @@ async def new_conversation(request: Request, data: InitSessionRequest): session_init_args = {**settings.__dict__, **session_init_args} github_token = getattr(request.state, 'github_token', '') - session_init_args['github_token'] = github_token + session_init_args['github_token'] = github_token or data.github_token or '' session_init_args['selected_repository'] = data.selected_repository conversation_init_data = ConversationInitData(**session_init_args) logger.info('Loading conversation store') diff --git a/openhands/server/session/agent_session.py b/openhands/server/session/agent_session.py index 9f761a9298be..3a0c96804cc2 100644 --- a/openhands/server/session/agent_session.py +++ b/openhands/server/session/agent_session.py @@ -204,7 +204,10 @@ async def _create_runtime( ) return - self.runtime.clone_repo(github_token, selected_repository) + if selected_repository: + await call_sync_from_async( + self.runtime.clone_repo, github_token, selected_repository + ) if agent.prompt_manager: microagents: list[BaseMicroAgent] = await call_sync_from_async( self.runtime.get_microagents_from_selected_repo, selected_repository