Spaces:
Build error
Build error
from openhands.core.config import LLMConfig | |
from openhands.integrations.provider import ProviderType | |
from openhands.resolver.interfaces.github import GithubIssueHandler, GithubPRHandler | |
from openhands.resolver.interfaces.gitlab import GitlabIssueHandler, GitlabPRHandler | |
from openhands.resolver.interfaces.issue_definitions import ( | |
ServiceContextIssue, | |
ServiceContextPR, | |
) | |
class IssueHandlerFactory: | |
def __init__( | |
self, | |
owner: str, | |
repo: str, | |
token: str, | |
username: str, | |
platform: ProviderType, | |
base_domain: str, | |
issue_type: str, | |
llm_config: LLMConfig, | |
) -> None: | |
self.owner = owner | |
self.repo = repo | |
self.token = token | |
self.username = username | |
self.platform = platform | |
self.base_domain = base_domain | |
self.issue_type = issue_type | |
self.llm_config = llm_config | |
def create(self) -> ServiceContextIssue | ServiceContextPR: | |
if self.issue_type == 'issue': | |
if self.platform == ProviderType.GITHUB: | |
return ServiceContextIssue( | |
GithubIssueHandler( | |
self.owner, | |
self.repo, | |
self.token, | |
self.username, | |
self.base_domain, | |
), | |
self.llm_config, | |
) | |
else: # platform == Platform.GITLAB | |
return ServiceContextIssue( | |
GitlabIssueHandler( | |
self.owner, | |
self.repo, | |
self.token, | |
self.username, | |
self.base_domain, | |
), | |
self.llm_config, | |
) | |
elif self.issue_type == 'pr': | |
if self.platform == ProviderType.GITHUB: | |
return ServiceContextPR( | |
GithubPRHandler( | |
self.owner, | |
self.repo, | |
self.token, | |
self.username, | |
self.base_domain, | |
), | |
self.llm_config, | |
) | |
else: # platform == Platform.GITLAB | |
return ServiceContextPR( | |
GitlabPRHandler( | |
self.owner, | |
self.repo, | |
self.token, | |
self.username, | |
self.base_domain, | |
), | |
self.llm_config, | |
) | |
else: | |
raise ValueError(f'Invalid issue type: {self.issue_type}') | |