Opened 2 years ago

Last modified 7 months ago

#6116 new enhancement

Slack webhooks should be switched to a Slack App

Reported by: dd32's profile dd32 Owned by:
Milestone: Priority: normal
Component: Communication (Matrix, Slack, IRC) Keywords:


Currently slack uses multiple outgoing webhooks for various purposes.

One of the main ones is to provide Trac integration into Slack, for example, we have a webhook for each major channel configured to which provides the ticket embeds when you mention #6116 in a slack channel.

There's several problems here:

  1. Slack has deprecated the webhooks we're using
  2. A new webhook has to be added for every individual channel
  3. The webhook integrations are all owned by different Slack Admins, which can cause some interesting results when the user disconnects their account
  4. I can't find the specific webhook amongst these 60 that I wanted to modify without going through multiple pages multiple times.

Slack Apps can have a single webhook that receives pings for all messages in all channels, instead of having to specify it individually. We currently have another Slack app installed which operates in that exact manner.

We also have a number of incoming webhooks which are used to post various data points to Slack, the above restrictions also apply to those, although they can post in any public channel.
There is another limitation in that if an incoming webhook is owned by $user and is used to post to a private channel, if that user leaves the private channel the webhook ceases to work.

This ticket is just to keep it in mind that this should be done at some point

Change History (1)

#1 @Starbuck
7 months ago

  • Priority changed from low to normal

After almost two years, Slack still says the webhooks interface is deprecated, should not be used, and is subject to removal.

It's time to process this ticket. I've bumped the priority of this ticket from Low to Normal to help get some eyes on it in #meta, perhaps to avoid a hugely reactive "what happened to the bot?".

Note: See TracTickets for help on using tickets.