getgort.github.io

The user documentation for Gort.


Project maintained by getgort Hosted on GitHub Pages — Theme by mattgraham

The Gort Guide

Gort is a chatbot framework designed from the ground up for chatops.

Gort brings the power of the command line to the place you collaborate with your team: your chat window. Its open-ended command bundle support allows developers to implement functionality in the language of their choice, while powerful access control means you can collaborate around even the most sensitive tasks with confidence. A focus on extensibility and adaptability means that you can respond quickly to the unexpected, without your team losing visibility.

Features

Gort’s design philosophy emphasizes flexibility and security by allowing you to:

Gort lets you build commands in any language you want, using tooling you’re already comfortable with, and can tightly control who can use them and how.

History

Gort was initially conceived of as a Go re-implementation of Operable’s Cog Slack Bot, and while it remains heavily inspired by Cog, Gort has largely gone its own way.

During our initial design process, we found that many of Cog’s features, however innovative, went largely unused, and the codebase had become difficult to extend and maintain. Additionally, its implementation language – Elixir – had relatively few proficient developers. The solution, which was discussed for many months on the Cog Slack workspace, was to rewrite Cog from scratch in such as Go, removing some of less-used functionality and reducing complexity in the process.

This gave us the opportunity to consider and possibly redefine what Cog was meant to be. To choose the features that make sense, and to discard those that don’t. In this way, Gort can be described more as a “spiritual successor” to Cog than a faithful re-implementation.

User Documentation

  1. Gort Architecture
  2. Quick Start
  3. Getting Started
    1. Configuring Gort
    2. Deploying Gort
    3. Bootstrapping Gort
  4. Commands and Bundles
    1. Commands as Containers
    2. Command Environment Variables
  5. Command Bundles
    1. Bundle Configurations
    2. Permissions and Rules
    3. Writing a Command Bundle (COMING SOON!)
    4. Installing Your First Command Bundle
    5. Managing Bundles
  6. Command Execution Rules
  7. Output Formatting Templates
    1. The Response Envelope
    2. Template Functions
  8. Going Forward: Features to Look Forward To