OpenHands
OpenHands copied to clipboard
[Resolver] (refactor) Generalize the resolver
End-user friendly description of the problem this fixes or functionality that this introduces
This PR separates the logic of GitHub from the resolver component. The final objective is for OpenHands to use in various code repositories, not just GitHub. This PR has two steps to achieve the objective:
-
A new handler to manage all pull requests and issue logic
-
Make the resolver's GitHub-related logic more abstract and give GitHub's logic to the GithubIssueHandler class.
-
[ ] Include this change in the Release Notes. If checked, you must provide an end-user friendly description for your change below
Give a summary of what the PR does, explaining any non-trivial design decisions
Here are some important decisions:
- Move all the Github logic to the new file. Openhands/resolver/github.py will create GithubIssueHandler and GithubPRHandler.
- Make the classes that were Github-specific general so that they can fulfill an interface. This will allow new classes to be generated that can be adapted to other solutions.
- Adapt the tests for the above changes.
Link of any specific issues this addresses [Resolver]: Gitlab support #5210