GitLab chat bot (Cog bundle)
Description
DevOps wants to be able to issue commands to GitLab via a chat interface (aka ChatOps). Let's provide an MVP of a GitLab integration to Slack.
Proposal
We currently believe that Cog is the best way forward for ChatOps and want to ship Cog with GitLab. But that is complicated and risky. e.g. Cog is optimized around Docker and doesn't fit well with GitLab Omnibus. A fallback might be to create a native Slack integration directly in GitLab. Either way, we need something that responds to various chat commands, interacts with GitLab (via API), and responds with text. This issue represents the work to create the GitLab bot commands itself.
Assuming Cog:
- Create a Cog "bundle" (that's what Cog calls the process that runs chat commands, not to be confused with bundling Cog with GitLab)
- Shipping Cog with GitLab is out of scope for this issue.
- Slack integration-only (for now)
- Convention would use a command structure like
!gitlab:noun verb [object]
. Thegitlab
part is optional if the noun is unique amongst all installed plugins. - Potential (incomplete) vocabulary:
- !gitlab:project create
- !gitlab:issue create [issue_title] [from last N]
- !gitlab:issue add [from PERSON]
- !gitlab:issue open [ISSUE]
- !gitlab:deploy staging production
- !gitlab:deploy v8.10.0 production
- !gitlab:deploy BRANCH ENVIRONMENT
- !gitlab:rollback [ENVIRONMENT]