dispatch icon indicating copy to clipboard operation
dispatch copied to clipboard

Support for Bitbucket hooks

Open nicklayb opened this issue 7 years ago • 3 comments

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 provider where you can set either github or bitbucket (defaults to github for backward compatibility)
  • Move the Github webhook handling in Webhooks.Controller to his own Webhooks.GitHub module
  • Rename the :create action in Webhooks.Controller for :github which will call the Webhooks.GitHub module (and point the route to :github)
  • Create Webhooks.Bitbucket module for handling Bitbucket webhook
  • Add a POST :bitbucket action 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 provider config variable.

Anything I forgot? Any recommandation?

nicklayb avatar Mar 14 '19 14:03 nicklayb

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?

gcauchon avatar Mar 14 '19 15:03 gcauchon

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 avatar Mar 14 '19 15:03 nicklayb

@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 .

GabDesilets avatar Apr 26 '19 19:04 GabDesilets