EN
Back to the archive

The archive · Work & Ways of Doing · Operational decision · 2011–2020

GitHub 2011–2020: Hubot turns chat into the deploy console

GitHub built a chat bot that ships code, runs CI and watches for errors; 'ChatOps' made deployment visible, auditable and open to every engineer.

GitHub

The ideaPut the tools in the chat room: a bot that deploys code, runs CI and pings the last deployer when errors spike — every action visible, auditable and open to all.substantial

What it had to solve

By 2011 GitHub's small team ran infrastructure from Campfire chat, and their bot had grown 'bigger and messier'. They rewrote it from scratch and open-sourced it as Hubot — a bot that ships code, fronts the CI server and makes ops commands visible to the whole company.

How it works

In 2011 GitHub was a small company running a very large service, and its team lived in Campfire chat. Their bot had grown 'bigger and messier', so they rewrote it from scratch and open-sourced it: Hubot, 'an amazing Campfire bot' that made them laugh, shipped their code, and served as the interface to their CI server.

The practice grew into what GitHub called ChatOps: engineers run '/deploy my-feature' in chat, and Hubot handles authentication, stages and canary rollouts. When exceptions spike after a deploy, Hubot pings the last deployer with a link to Haystack, GitHub's internal exception dashboard — 'the immediate benefit of this ping is that it implicitly sets a responsible party'.

By 2020 the pattern was mature: GitHub's deploy team described deployments initiated with 'a series of Hubot commands', running 120–150 production deploys a week for github.com, with more than 400 pull requests shipped in a single week, and enough trust in the process that rollbacks stayed low and developers could merge and move on.

Why it lands

  • It removed the bottleneck of 'who is allowed to touch production' — any engineer could deploy from chat, and the action was visible to the whole company.
  • The bot made responsibility implicit: the last deployer is pinged when errors spike, so problems find an owner instead of waiting for triage.
  • Because every command ran in a shared channel, deployment became auditable and teachable — new engineers learned ops by watching chat.
  • Open-sourcing Hubot turned an internal convenience into an industry pattern, popularizing the term ChatOps.

What it did

Deployment at GitHub became a chat command anyone could run and everyone could see: the same number of weekly deploys now ships far more changes, rollbacks stayed low enough to build a 'culture of trust', and the term ChatOps spread across the industry as teams copied the pattern.

Their siteHubot on GitHub

What you can take

An internal tool wins when it lowers the social cost of action: putting ops in the chat made deploys visible, auditable and safe to delegate — the interface change is what changed the culture.

Since then

ChatOps became a widely copied practice, and Hubot grew into a community project with adapters for Slack, Discord and Teams. At GitHub the deploy pipeline kept evolving — IssueOps and GitHub Actions later built on the same idea — while the underlying principle, letting people run infrastructure from the tools they already share, stayed central to how GitHub ships.

Sources

spotted an error? The archive wants to know.

Your turn

You just read one. Describe the brief you are staring at, and see who has been given the same problem.

Free account · 3 free questions · no card

Related cases