Yorick Peterse authored
The chatops solution is built on top of CI pipelines and essentially acts as a different UI for scheduling pipelines manually. Pipelines scheduled via chat have access to an environment variable called "CHAT_INPUT". This variable stores the arguments that were passed to the chatops command. Output is retrieved by reading specific trace sections from the build output. There are two sections supported (in this order): 1. chat_reply 2. build_script The "chat_reply" is a trace section that one has to generate themselves, "build_script" in turn is provided by default. The "build_script" trace section also includes the output of any commands executed in the "before_script" list. If one doesn't want to display this output they should generate the custom "chat_reply" trace section. Responses are sent back via Sidekiq using the ChatNotificationWorker class. This ensures that existing CI related jobs won't get slowed down if Slack (or another chat service) is not responding.