Expanding Git service webhook support

Currently AWX only supports GitHub and GitLab as incoming webhooks for triggering Job Templates. There are several open unassigned requests for expanding this to other services:

  • Add support for Webhooks from Gitea #5839

  • Support Azure DevOps webhooks #8050

  • Add support for Gogs webhooks #6529
    As well as two for BitBucket:

  • Add support for BitBucket Webhooks #8328 [rejected PR]

  • Add Support for BitBucket webhooks #5209

I have two questions for the AWX developer community, sorry if this is long!

  1. As I commented in #5209, there is not a strong reason to reject Bitbucket if not also rejecting GitLab, as neither support signed payloads. If I do for BitBucket what is currently done for GitLab, by grabbing a token and comparing it with the webhook_key, would that be accepted?

  2. In order to not have to subclass WebhookReceiver for every new Git service coming… could we find a way to make this more… uh, automated? As noted in #6529, “Gogs webhooks are quite similar to github ones” If I add a “DefaultWebhookReceiver” that uses heuristics to find signatures, guid, events, etc, would that be accepted?
    My primary desire is to support our internal BitBucket Server’s webhooks, but I’m more than willing to work on whatever would be most beneficial to the community, and would welcome some discussion on this topic.