Bot::Backbone::Service::Ticket - a service for doing ticket lookups and summarizing
version 0.160490
# And then in your bot configuration: service my_tickets => ( service => 'Ticket', trackers => [{ type => 'JIRA', uri => 'http://company.atlassian.net/', username => 'botuser', password => 'secret', title => 'Issue %{issue}s: %{summary}s', link => 'https://company.atlassian.net/browse/%{issue}s', patterns => [ qr{(?<!/)\b(?<issue>[A-Za-z]+-\d+)\b}, qr{(?<![\[])\b(?<schema>https:)//company\.atlassian\.net/browse/(?<issue>[A-Za-z]+-\d+)\b}, ], }, { type => 'FogBugz', base_url => 'https://company.fogbugz.com/api.asp', token => 'gobbledygooksecretstuff', title => 'Case #%{issue}s: %{summary}s', link => 'http://example.com/mytickets/issue/%{issue}s', patterns => [ qr{\bbugzid:(?<issue>\d+)\b}, qr{(?<![\[])\b(?<scheme>https:)//company\.fogbugz\.com/f/cases/(?<issue>\d+)\b}, ] }], send_policy => 'dont_repeat_too_often', );
This module is the main reason most (maybe all, actually) of my work bots began their existence: to spew out the title and link to a ticket in the ticket/issue/case tracker application used by the company. When a ticket gets mentioned, the bot looks up the ticket, grabs the title and shares it with a link to the ticket with the group. That way it's easy for someone to say, "while working on #123, I ran into X problem" and everyone can be clued into the context without having to remember the ticket numbers, but the original poster can still be precise and let others look into the ticket details easily.
To use this module, you must install one of the ticket tracking systems or build your own. As of this writing, the following trackers are implemented:
JIRA. Install Bot::Backbone::Service::Ticket::Tracker::JIRA
FogBugz. Install Bot::Backbone::Service::Ticket::Tracker::FogBugz
To build your own, see Bot::Backbone::Service::Ticket::Tracker. It is pretty simple.
Multiple ticket trackers can be defined in a single service configuration for simplicity. This is useful as most organizations have more than one or transition from one to another from time to time.
When one of the patterns defined in the tracker configuration matches a message received, the "name_that_method" method is called to respond.
patterns
This will trigger the "lookup_issue" in Bot::Backbone::Service::Ticket::Tracker method on the tracker which is responsible for finding the named issue in the tracking system and returning the metadata describing it. If a matching ticket is actually found, the details will be announced as a reply. If nothing is returned, the bot is silent.
This is a list of trackers configured for this service. At least one tracker must be defined. The type key is used to lookup the class implementing the lookup_issue method for your tracking system. It can be the full name of the class or just the last part of the name if the class name is prefixed with "Bot::Backbone::Service::Ticket::Tracker::".
type
lookup_issue
Implements the issue lookup and response.
No op.
Andrew Sterling Hanenkamp <hanenkamp@cpan.org>
This software is copyright (c) 2016 by Qubling Software LLC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Bot::Backbone::Service::Ticket, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Bot::Backbone::Service::Ticket
CPAN shell
perl -MCPAN -e shell install Bot::Backbone::Service::Ticket
For more information on module installation, please visit the detailed CPAN module installation guide.