All-Hands-AI / OpenHands

🙌 OpenHands: Code Less, Make More
https://all-hands.dev
MIT License
37.37k stars 4.23k forks source link

[Resolver]: Gitlab support #5210

Open josx opened 3 days ago

josx commented 3 days ago

What problem or use case are you trying to solve? There are plenty source code in gitlab software in public and private instances. It has a plus is free software. So would be nice to have resolve issues , Responding to PR Comments, and CI/CD (like github workflow but for gitlab).

Do you have thoughts on the technical implementation?

Additional context With this feature will enable a complete workflow local or on-premise with free software.

neubig commented 2 days ago

Hi @josx , we (the current maintainers me and @malhotra5) probably aren't going to work on this ourselves right now (just due to lack of time), but we'd 100% welcome a contribution in this direction!

josx commented 3 hours ago

Ok, Something that we have to take into account so that it can be done. Any advice?

malhotra5 commented 3 hours ago

Hey @josx! I'd recommend taking a look at Openhands/openhands/resolver. All of the resolver logic is contained within this folder.

The files Openhands/openhands/resolver/issue_definitions.py (downloads issues) and Openhands/openhands/resolver/send_pull_request.py (uploads code) use Github APIs, so we'd probably want to do a larger refactor to further abstract the code to support Gitlab endpoints.

Unit tests in tests/unit/resolver should make sure the appropriate APIs and response data are being used (larger refactor of tests is probably necessary for this as well).

Lastly, we'd need another workflow definition file similar to .github/workflows/openhands-resolver.yml to trigger the resolver inside Gitlab.