diff --git a/openhands/runtime/base.py b/openhands/runtime/base.py index b2fbd53b21..c079aae92f 100644 --- a/openhands/runtime/base.py +++ b/openhands/runtime/base.py @@ -210,9 +210,11 @@ class Runtime(FileEditRuntimeMixin): 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 235b5801f2..6d23ae0169 100644 --- a/openhands/server/routes/manage_conversations.py +++ b/openhands/server/routes/manage_conversations.py @@ -30,9 +30,7 @@ UPDATED_AT_CALLBACK_ID = 'updated_at_callback_id' 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 9f761a9298..3a0c96804c 100644 --- a/openhands/server/session/agent_session.py +++ b/openhands/server/session/agent_session.py @@ -204,7 +204,10 @@ class AgentSession: ) 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