Slack Integrations++

David Dooling
The Composition
Published in
4 min readOct 30, 2017

Lots of software development teams use Slack to improve communication and, hopefully, their velocity. One way teams do this is by using integrations that post messages summarizing commits, builds, issues, and deployments in their Slack team. Unfortunately, these stock integrations tend to be noisy and either put in a channel no one looks at or removed entirely. At Atomist, we wanted more meaningful information on our source code, so we built custom notifications using our Atomist Slack Bot. It’s one of the things we’ve done to make more effective use of Slack and avoid the Slack blues.

While we set out to simply have improved development lifecycle messages in Slack, it has become an amazingly powerful tool for keeping our team in sync without a lot of overhead and is one of the more popular features with teams using Atomist. Rather than exiling integrations to the lonely wasteland of silenced and unsubscribed Slack channels, teams using Atomist get relevant and meaningful updates in the same channels where they discuss development. Atomist notifications are part of the conversation. In this post, we’ll see how some new features we’ve added help us be more productive by reducing context switching.

Optics

Last time we wrote about the Atomist development lifecycle messages, we focused on the improved display of information:

  • One integration for many systems instead of one per system
  • Correlation of information from those systems into fewer, more meaningful messages
  • Enrichment of existing messages as new information comes in instead of spamming channels with many new messages

Put more visually, instead of this

you get this

Links! Context! Bears! Oh my! No bears you say? Sometimes you eat the bear.

This message gives you more information in less space. Notice how the push and build are in a single message, a single line! But nicer visuals aren’t the whole story. Just seeing the information isn’t enough. We demand action! So let’s look at the full message:

What?!? You can raise a PR right from Slack? Why not?

Action

There’s a “Raise PR” button right there! No need to go to GitHub.com to open a PR. Don’t worry, that button only appears on pull requests where all checks have passed, so, for example, you won’t see it if a build fails. After we click that button, the original message gets updated with the new stuff that has come to light. That’s right, rather than message after message after message spamming your channel, as new information related to a push becomes available, it is added the original push message.

The updated message contains a link to the PR and the commit statuses for the commit in the PR.

But the fun does not stop there. Your standard GitHub integration will provide you with a message about the new PR:

<Cute>

The Atomist Bot provides something quite a bit more actionable:

Links! Context! Action!

In this one message you:

  • See the PR title, which is a link to the PR on GitHub.com
  • Can request reviews using either GitHub user logins or Slack IDs
  • Enable automatically merging when all checks have passed and there is an “approve” review
  • Add a comment to the PR
  • Thumbs up the PR
  • See the commit(s) in the PR
  • See that all checks have passed
  • Merge the PR, or Squash and Merge the PR, or Rebase and Merge the PR
  • See the issue that the PR refers to

That’s a lot of action! Anything you might want to do to a PR you can do from the comfort of Slack. No more bouncing from one web site to another to another to monitor and manage your development. When you push commits, no need to check your CI web interface. If it fails, you’ll get a DM in Slack. If it succeeds, next time you check Slack just click the “Raise PR” button. Hate waiting for PR reviews, not to worry! The Atomist Bot will DM those you’ve requested a review from and they can set reminders on that message to make sure they add their reviews. Frustrated when an approved PR just sits there open? Just enable auto-merge on the PR and once everything is green, voila!

Reaction

Is your development workflow different? Do you use GitFlow instead of merging feature branches right into master? You’re in luck, these messages are highly configurable. Plus, we recently open-sourced the code that creates these beautiful, actionable messages so it’s easier for everyone to consume and learn from. Take a look at the lifecycle-automations code, install the Atomist Bot in your Slack team, and maybe even write your own bot command.

Add the Atomist Bot to your Slack team and let us know what you think about development lifecycle messages!

--

--