Skip to content

Add Slack integration #26

@davidje13

Description

@davidje13

Should be built on top of #19.

It can be desirable to have action items automatically shown in Slack, ideally with the ability to tick items from inside the message and have this propagate back to Refacto, and maybe even with @mentions for the tagged person (not clear how this would be indicated though). This could be posted when retros are archived, on a schedule, or in response to a Slack request (perhaps a mention or command)

Things to consider:

  • authentication flow: should be simple to configure for a particular retro, but different teams in the same slack organisation might want different retros syncing with different channels. Slack instance needs to trust Refacto (once?) then Refacto needs to have some way of knowing which retros are allowed to sync to which channels. Care must be taken to ensure retro data does not leak to unexpected places or become available without authentication.
  • level of interactivity: does it make sense for the bot to have available commands or respond to mentions? does self-managed scheduling make sense? (alternatively could be possible to use Slack scheduling to post a message which asks the bot to show a message (e.g. /remind #mychannel @refacto-bot what are our remaining actions? at 9:00 every weekday), but this might be more complex for users to understand)
  • key rotation and multiple instances: should the Slack access key be shared between all running instances? Having separate keys for each would hit limits on number of active keys at a time. Also if any scheduling is used, it would not be desirable for all instances to post duplicate messages.

Could use https://www.npmjs.com/package/@slack/bolt but this looks quite heavy and the necessary API seems simple enough that it probably doesn't warrant bringing in so much stuff.

Resources:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions