npm / pagerbot

Manage Pagerduty on-call schedules from within your internal chat channels.
https://stripe.com/blog/pagerbot
MIT License
0 stars 1 forks source link

[BUG] fix: pagerbot wont swap shifts because pagerduty api is now v2 #1

Open ian-at-npm opened 4 years ago

ian-at-npm commented 4 years ago

image

2019-12-18T18:23:31.723688+00:00 app[bot.1]: 2019-12-18 18:23:31.718316 I [4:47361509517320] PagerBot -- msg="put ian on evening backup during nlf shift on thursday", extra_info={:nick=>"ian", :adapter=>:slack}
2019-12-18T18:23:31.723854+00:00 app[bot.1]: 2019-12-18 18:23:31.718608 I [4:47361509517320] PagerBot -- query={:person=>"ian", :whose_shift=>"nlf", :schedule=>"evening backup", :day=>"thursday", :plugin=>"switch_shift"}
2019-12-18T18:23:32.383473+00:00 app[bot.1]: 2019-12-18 18:23:32.380577 E [4:47361509517320 action_manager.rb:38] PagerBot::ActionManager -- Failed to process message. -- Exception: NoMethodError: private method `select' called for nil:NilClass
2019-12-18T18:23:32.383486+00:00 app[bot.1]: /app/lib/pagerbot/plugin/switch_shift.rb:77:in `when_oncall'
2019-12-18T18:23:32.383488+00:00 app[bot.1]: /app/lib/pagerbot/plugin/switch_shift.rb:106:in `dispatch'
2019-12-18T18:23:32.383491+00:00 app[bot.1]: /app/lib/pagerbot/utilities.rb:71:in `call'
2019-12-18T18:23:32.383493+00:00 app[bot.1]: /app/lib/pagerbot/utilities.rb:71:in `call'
2019-12-18T18:23:32.383497+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/method_decorators-0.9.6/lib/method_decorators.rb:43:in `block (2 levels) in decorate_callable'
2019-12-18T18:23:32.383499+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/method_decorators-0.9.6/lib/method_decorators.rb:19:in `block in method_added'
2019-12-18T18:23:32.383501+00:00 app[bot.1]: /app/lib/pagerbot/plugin/plugin_manager.rb:48:in `dispatch'
2019-12-18T18:23:32.383503+00:00 app[bot.1]: /app/lib/pagerbot/action_manager.rb:28:in `dispatch'
2019-12-18T18:23:32.383506+00:00 app[bot.1]: /app/lib/pagerbot.rb:42:in `process'
2019-12-18T18:23:32.383508+00:00 app[bot.1]: /app/lib/pagerbot/slack_rtm_adapter.rb:71:in `process_message'
2019-12-18T18:23:32.383510+00:00 app[bot.1]: /app/lib/pagerbot/slack_rtm_adapter.rb:32:in `block in run!'
2019-12-18T18:23:32.383512+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/slack-ruby-client-0.13.0/lib/slack/real_time/client.rb:199:in `block in run_callbacks'
2019-12-18T18:23:32.383515+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/slack-ruby-client-0.13.0/lib/slack/real_time/client.rb:198:in `each'
2019-12-18T18:23:32.383517+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/slack-ruby-client-0.13.0/lib/slack/real_time/client.rb:198:in `run_callbacks'
2019-12-18T18:23:32.383519+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/slack-ruby-client-0.13.0/lib/slack/real_time/client.rb:177:in `dispatch'
2019-12-18T18:23:32.383521+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/slack-ruby-client-0.13.0/lib/slack/real_time/client.rb:93:in `block (2 levels) in run_loop'
2019-12-18T18:23:32.383523+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/event_emitter.rb:39:in `block in emit'
2019-12-18T18:23:32.383525+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/event_emitter.rb:38:in `each'
2019-12-18T18:23:32.383527+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/event_emitter.rb:38:in `emit'
2019-12-18T18:23:32.383529+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/faye-websocket-0.10.7/lib/faye/websocket/api/event_target.rb:44:in `dispatch_event'
2019-12-18T18:23:32.383531+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/faye-websocket-0.10.7/lib/faye/websocket/api.rb:113:in `receive_message'
2019-12-18T18:23:32.383533+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/faye-websocket-0.10.7/lib/faye/websocket/api.rb:45:in `block in initialize'
2019-12-18T18:23:32.383535+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/event_emitter.rb:39:in `block in emit'
2019-12-18T18:23:32.383537+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/event_emitter.rb:38:in `each'
2019-12-18T18:23:32.383539+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/event_emitter.rb:38:in `emit'
2019-12-18T18:23:32.383541+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/hybi.rb:398:in `emit_message'
2019-12-18T18:23:32.383544+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/hybi.rb:381:in `emit_frame'
2019-12-18T18:23:32.383546+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/hybi.rb:123:in `parse'
2019-12-18T18:23:32.383548+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/websocket-driver-0.7.0/lib/websocket/driver/client.rb:63:in `parse'
2019-12-18T18:23:32.383550+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/faye-websocket-0.10.7/lib/faye/websocket/api.rb:153:in `parse'
2019-12-18T18:23:32.383552+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/slack-ruby-client-0.13.0/lib/slack/real_time/concurrency/eventmachine.rb:19:in `parse'
2019-12-18T18:23:32.383554+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/faye-websocket-0.10.7/lib/faye/websocket/client.rb:80:in `receive_data'
2019-12-18T18:23:32.383557+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine'
2019-12-18T18:23:32.383558+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run'
2019-12-18T18:23:32.383578+00:00 app[bot.1]: /app/vendor/bundle/ruby/2.5.0/gems/slack-ruby-client-0.13.0/lib/slack/real_time/concurrency/eventmachine.rb:54:in `block in ensure_reactor_running'
2019-12-18T18:23:32.383586+00:00 app[bot.1]: 2019-12-18 18:23:32.380690 I [4:47361509517320] PagerBot -- answer={:message=>"Hmm, that didn't seem to work: private method `select' called for nil:NilClass\nSyntax: put PERSON on SCHEDULE during ANOTHERPERSON's shift on DAY"}
2019-12-18T18:23:32.383696+00:00 app[bot.1]: 2019-12-18 18:23:32.380707 I [4:47361509517320] PagerBot::SlackRTMAdapter -- Responding. -- {:channel=>"DRVJKT26T", :text=>"Hmm, that didn't seem to work: private method `select' called for nil:NilClass\nSyntax: put PERSON on SCHEDULE during ANOTHERPERSON's shift on DAY"}
ian-at-npm commented 4 years ago

This was my half assed attempt at a fix: https://github.com/npm/pagerbot/commit/4bccd26bafc080d97a4ce7d61db32723733235ca