Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatOps in Ruby with Lita (Lightning Version)

ChatOps in Ruby with Lita (Lightning Version)

Lightning talk version of a presentation about Lita, the chat bot framework for Ruby. Presented at DevOpsDays Rockies 2015.

8893e2e206c0377ff776d2535887d23f?s=128

Jimmy Cuadra

April 23, 2015
Tweet

Transcript

  1. CHATOPS IN RUBY WITH LITA @jimmycuadra

  2. ChatOps: Operations via group chat

  3. None
  4. IRC

  5. C.A.M.S. (Culture, automation, measurement, sharing)

  6. None
  7. $ gem install lita

  8. $ lita new create lita create lita/Gemfile create lita/lita_config.rb

  9. source "https://rubygems.org" gem "lita" gem “lita-slack” gem "lita-google-images" gem "lita-karma"

  10. You: Lita, image pug Lita: http://upload.wikimedia.org/ wikipedia/commons/7/7f/Pug_portrait.jpg

  11. $ lita handler hello Do you want to test your

    plugin on Travis CI? y Do you want to generate code coverage information with SimpleCov and Coveralls.io? y ———> create lita-hello/lib/lita/handlers/hello.rb create lita-hello/lib/lita-hello.rb ———> create lita-hello/spec/lita/handlers/hello_spec.rb create lita-hello/spec/spec_helper.rb create lita-hello/locales/en.yml create lita-hello/Gemfile create lita-hello/lita-hello.gemspec create lita-hello/.gitignore ———> create lita-hello/.travis.yml create lita-hello/Rakefile create lita-hello/README.md
  12. describe Lita::Handlers::Hello, lita_handler: true do end

  13. describe Lita::Handlers::Hello, lita_handler: true do it { is_expected.to route_command("hello").to(:greet) }

    it "greets the user who said hello" do send_command("hello") expect(replies.first).to eq("Hello, Test User!") end end
  14. module Lita module Handlers class Hello < Handler end Lita.register_handler(Hello)

    end end
  15. module Lita module Handlers class Hello < Handler route /hello/,

    :greet, command: true def greet(response) response.reply "Hello, #{response.user.name}!" end end Lita.register_handler(Hello) end end
  16. You: Lita, hello Lita: Hello, Jimmy!

  17. lita-digitalocean You: Lita, do droplets list Lita: ID: 123, Name:

    image1, IP: 1.2.3.4 Lita: ID: 456, Name: image2, IP: 5.6.7.8
  18. lita-pagerduty You: Lita, pager ack ABC123 Lita: ABC123: Incident acknowledged

  19. lita-retro You: Lita, retro :( too many rollbacks Lita: Bad

    topic added! You: Lita, retro list Lita: Bad topic from Jimmy: too many rollbacks
  20. www.lita.io @litachatbot / @jimmycuadra