At GitHub, we ship a lot. We think it’s so important to ship often, we even have a shipping mascot and matching emoji (
The shipping mascot mentioned in the post is 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
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
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?