I did this for Forgejo, now adding Gitlab and planning Github as well: https://github.com/smithy-ai/smithy-ai
It runs Claude in docker containers, listens for webhooks to see comments and CI status.