Engineering

Ship It Squirrel and list skills

Ship early and ship often. This is a principle we embrace and celebrate here at A Serious Business, Inc.. It’s a cultural holdover from our days at GitHub

At GitHub, we ship a lot. We think it’s so important to ship often, we even have a shipping mascot and matching emoji (:shipit:).

The shipping mascot mentioned in the post is the famous Ship It Squirrel!

The famous Ship It Squirrel.

The Ship It Squirrel showed up everywhere. If a Pull Request was ready to go, we’d comment on the PR with the :shipit: emoji. In chat, we had a Hubot script we could call that posted a random Ship It Squirrel into the chat room. The hubot-shipit script still lives on! It’s a nice way to encourage each other.

With Abbot, it’s possible to build such a skill without any code as Abbot has first-class support for building skills that pull a random item from a list via the list skill. The following is a demonstration:

@abbot list add shipit
@abbot shipit add https://user-images.githubusercontent.com/19977/122805857-796f9480-d27e-11eb-8ee8-ccb335d14f23.png

That first command creates a new list skill named shipit. The second command adds an image URL to the shipit list.

With this in place, you can call the shipit skill with no arguments (@abbot shipit) to tell it to retrieve a random item from the list. In this case, with only one item, that’s not so interesting. So lets add more items to the list like so:

@abbot shipit add https://28.media.tumblr.com/tumblr_lybw63nzPp1r5bvcto1_500.jpg
@abbot shipit add https://user-images.githubusercontent.com/19977/122805749-55ac4e80-d27e-11eb-9ec5-ea5cd551a9a2.png

The next time you run @abbot shipit, Abbot will return a random item from the shipit list.

Hopefully your teammates will use such lists responsibly, but just in case someone adds an image that is not conducive to a culture of shipping, you can log in to the Abbot List Skills page to find out who added which items.

By my estimate 80% of Hubot scripts that GitHub employees wrote for internal user were variations of this theme. For example, I mentioned that a previous co-worker wrote .haack me which brought up a random animated gif of me. Turns out, that co-worker is now my co-founder.

We use lists for fun and to build camaraderie. For example, the default joke skill is implemented as a list. We also have a Magic 8 Ball list. But we also use them for real work such as tracking ideas for new skills. What interesting lists will you create?

Recent Posts

Product

Have a chat with your Operations Toolkit

Product

(re)Introducing Abbot - a Copilot for Customer-Facing Teams

Engineering

That Shouldn't Happen - UnreachableException in .NET 7

Product

Automated Escalations with Abbot

Company

Seriously SOC 2 Compliant