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}') | |