Spaces:
Build error
Build error
# flake8: noqa: E501 | |
import asyncio | |
from openhands.resolver.issue_resolver import IssueResolver | |
def main() -> None: | |
import argparse | |
def int_or_none(value: str) -> int | None: | |
if value.lower() == 'none': | |
return None | |
else: | |
return int(value) | |
parser = argparse.ArgumentParser(description='Resolve a single issue.') | |
parser.add_argument( | |
'--selected-repo', | |
type=str, | |
required=True, | |
help='repository to resolve issues in form of `owner/repo`.', | |
) | |
parser.add_argument( | |
'--token', | |
type=str, | |
default=None, | |
help='token to access the repository.', | |
) | |
parser.add_argument( | |
'--username', | |
type=str, | |
default=None, | |
help='username to access the repository.', | |
) | |
parser.add_argument( | |
'--base-container-image', | |
type=str, | |
default=None, | |
help='base container image to use.', | |
) | |
parser.add_argument( | |
'--runtime-container-image', | |
type=str, | |
default=None, | |
help='Container image to use.', | |
) | |
parser.add_argument( | |
'--max-iterations', | |
type=int, | |
default=50, | |
help='Maximum number of iterations to run.', | |
) | |
parser.add_argument( | |
'--issue-number', | |
type=int, | |
required=True, | |
help='Issue number to resolve.', | |
) | |
parser.add_argument( | |
'--comment-id', | |
type=int_or_none, | |
required=False, | |
default=None, | |
help='Resolve a specific comment', | |
) | |
parser.add_argument( | |
'--output-dir', | |
type=str, | |
default='output', | |
help='Output directory to write the results.', | |
) | |
parser.add_argument( | |
'--llm-model', | |
type=str, | |
default=None, | |
help='LLM model to use.', | |
) | |
parser.add_argument( | |
'--llm-api-key', | |
type=str, | |
default=None, | |
help='LLM API key to use.', | |
) | |
parser.add_argument( | |
'--llm-base-url', | |
type=str, | |
default=None, | |
help='LLM base URL to use.', | |
) | |
parser.add_argument( | |
'--prompt-file', | |
type=str, | |
default=None, | |
help='Path to the prompt template file in Jinja format.', | |
) | |
parser.add_argument( | |
'--repo-instruction-file', | |
type=str, | |
default=None, | |
help='Path to the repository instruction file in text format.', | |
) | |
parser.add_argument( | |
'--issue-type', | |
type=str, | |
default='issue', | |
choices=['issue', 'pr'], | |
help='Type of issue to resolve, either open issue or pr comments.', | |
) | |
parser.add_argument( | |
'--is-experimental', | |
type=lambda x: x.lower() == 'true', | |
help='Whether to run in experimental mode.', | |
) | |
parser.add_argument( | |
'--base-domain', | |
type=str, | |
default=None, | |
help='Base domain for the git server (defaults to "github.com" for GitHub and "gitlab.com" for GitLab)', | |
) | |
my_args = parser.parse_args() | |
issue_resolver = IssueResolver(my_args) | |
asyncio.run(issue_resolver.resolve_issue()) | |
if __name__ == '__main__': | |
main() | |