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
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.
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
- Say Hello to Hubot
- Exception Monitoring and Response
- DevOps best practices Q&A: Automated deployments at GitHub
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