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() | |