Support for Bitbucket hooks
As we talked, I would like to implement Bitbucket support in Dispatch and pave the ground for other support such as GitLab. I browsed the code a bit and here is how I'm planning to implement it:
- Add a configuration called
providerwhere you can set eithergithuborbitbucket(defaults to github for backward compatibility) - Move the Github webhook handling in Webhooks.Controller to his own Webhooks.GitHub module
- Rename the
:createaction in Webhooks.Controller for:githubwhich will call the Webhooks.GitHub module (and point the route to :github) - Create Webhooks.Bitbucket module for handling Bitbucket webhook
- Add a POST
:bitbucketaction in Webhooks.Controller which uses the Webhooks.Bitbucket module with a route/webhooks/bitbucket - Add a BitbucketClient that implements ClientBehaviour.
- Make sure that the Client module is used dependant on
providerconfig variable.
Anything I forgot? Any recommandation?
I think your plan covers the webhook and fetching repository metadata, which is 2/3 of the cycle. Have you look at the code that actually assign reviewers and post the comment in the PR stream?
I may have mistakenly skipped that part, I was sure it was part of the GitHubClient module actually.
Can you point me out this part of the code?
@nicklayb correct me if i'm wrong, which i think you'll haha but it would only need a bitbucket_client matching what the client_behavior need .