fix chdir
This commit is contained in:
+34
-46
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import os
|
|
||||||
import subprocess
|
import subprocess
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from typing import Any, Callable
|
from typing import Any, Callable
|
||||||
@@ -677,55 +676,44 @@ class AgentDispatcher:
|
|||||||
workspace = WorkspaceManager()
|
workspace = WorkspaceManager()
|
||||||
repo_path = workspace.get_repo_path(repo)
|
repo_path = workspace.get_repo_path(repo)
|
||||||
|
|
||||||
original_cwd = os.getcwd()
|
|
||||||
changed_dir = False
|
|
||||||
if os.path.isdir(str(repo_path)):
|
|
||||||
os.chdir(str(repo_path))
|
|
||||||
changed_dir = True
|
|
||||||
|
|
||||||
results: list[str] = []
|
results: list[str] = []
|
||||||
|
# Get authenticated username for reviewer filter
|
||||||
|
ai_username = "meeks-ai"
|
||||||
try:
|
try:
|
||||||
# Get authenticated username for reviewer filter
|
user = self._client.get_authenticated_user()
|
||||||
ai_username = "meeks-ai"
|
if user:
|
||||||
try:
|
ai_username = user.login
|
||||||
user = self._client.get_authenticated_user()
|
except Exception:
|
||||||
if user:
|
pass
|
||||||
ai_username = user.login
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
for item in work_items:
|
for item in work_items:
|
||||||
processor: TaskProcessor
|
processor: TaskProcessor
|
||||||
if item.task_type == "pr":
|
if item.task_type == "pr":
|
||||||
processor = PRTaskProcessor(
|
processor = PRTaskProcessor(
|
||||||
client=self._client,
|
client=self._client,
|
||||||
tools=self._tools,
|
tools=self._tools,
|
||||||
model_name=self._model_name,
|
model_name=self._model_name,
|
||||||
repo=repo,
|
repo=repo,
|
||||||
item=item,
|
item=item,
|
||||||
ai_username=ai_username,
|
ai_username=ai_username,
|
||||||
)
|
)
|
||||||
elif item.task_type == "issue":
|
elif item.task_type == "issue":
|
||||||
processor = IssueTaskProcessor(
|
processor = IssueTaskProcessor(
|
||||||
client=self._client,
|
client=self._client,
|
||||||
tools=self._tools,
|
tools=self._tools,
|
||||||
model_name=self._model_name,
|
model_name=self._model_name,
|
||||||
repo=repo,
|
repo=repo,
|
||||||
item=item,
|
item=item,
|
||||||
ai_username=ai_username,
|
ai_username=ai_username,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
logger.warning(f"Unknown task type: {item.task_type}")
|
logger.warning(f"Unknown task type: {item.task_type}")
|
||||||
results.append(f"SKIP: Unknown task type {item.task_type}")
|
results.append(f"SKIP: Unknown task type {item.task_type}")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
logger.info(f"Processing {item.task_type} #{item.task_number} via {processor.__class__.__name__}")
|
logger.info(f"Processing {item.task_type} #{item.task_number} via {processor.__class__.__name__}")
|
||||||
result = await processor.process(attempt_limit=self._max_retries)
|
result = await processor.process(attempt_limit=self._max_retries)
|
||||||
results.append(result)
|
results.append(result)
|
||||||
|
|
||||||
finally:
|
|
||||||
if changed_dir:
|
|
||||||
os.chdir(original_cwd)
|
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|||||||
@@ -137,9 +137,7 @@ async def test_dispatch_planning_and_coding_phases(mock_planning_class: MagicMoc
|
|||||||
priority=0
|
priority=0
|
||||||
)
|
)
|
||||||
|
|
||||||
# We mock os.path.isdir to return True so os.chdir won't fail or crash in test
|
results = await dispatcher.dispatch("meeks/repo1", [work_item])
|
||||||
with patch("os.path.isdir", return_value=True), patch("os.chdir"):
|
|
||||||
results = await dispatcher.dispatch("meeks/repo1", [work_item])
|
|
||||||
|
|
||||||
assert len(results) == 1
|
assert len(results) == 1
|
||||||
assert results[0] == "PR #1 Created"
|
assert results[0] == "PR #1 Created"
|
||||||
|
|||||||
Reference in New Issue
Block a user