humbug_trac: Make notifications for comments configurable.

(imported from commit 8eeea4051194d0038b039befd9b9a0ee4099a30c)
This commit is contained in:
Tim Abbott 2013-02-13 16:28:19 -05:00
parent df67499a35
commit 5bbb53e625
3 changed files with 15 additions and 52 deletions

View file

@ -1,49 +1,14 @@
# -*- coding: utf-8 -*- # Humbug Inc's internal trac plugin configuration.
# # The plugin and example config are under api/integrations/
# Copyright © 2012 Humbug, Inc.
# # Leaving all the instructions out of this file to avoid having to
# Permission is hereby granted, free of charge, to any person obtaining a copy # sync them as we update the comments.
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# Change these constants:
HUMBUG_USER = "humbug+trac@humbughq.com" HUMBUG_USER = "humbug+trac@humbughq.com"
HUMBUG_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" HUMBUG_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
STREAM_FOR_NOTIFICATIONS = "trac" STREAM_FOR_NOTIFICATIONS = "trac"
TRAC_BASE_TICKET_URL = "https://trac.humbughq.com/ticket" TRAC_BASE_TICKET_URL = "https://trac.humbughq.com/ticket"
# Most people find that having every change in Trac result in a TRAC_NOTIFY_FIELDS = ["description", "summary", "resolution", "comment"]
# notification is too noisy -- in particular, when someone goes
# through recategorizing a bunch of tickets, that can often be noisy
# and annoying. We solve this issue by only sending a notification if
# one of the more important fields is changed or the person making the
# change makes a comment.
#
# Total list of fields is:
# (priority, milestone, cc, owner, keywords, component, severity,
# type, versions, description, resolution, summary)
#
# The following is the list of fields which can be changed without
# triggering a Humbug notification
TRAC_NOTIFY_FIELDS = ["description", "summary", "resolution"]
## If properly installed, the Humbug API should be in your import
## path, but if not, set a custom path below
HUMBUG_API_PATH = "/home/humbug/humbug/api" HUMBUG_API_PATH = "/home/humbug/humbug/api"
# This should not need to change unless you have a custom Humbug subdomain.
HUMBUG_SITE = "https://staging.humbughq.com" HUMBUG_SITE = "https://staging.humbughq.com"

View file

@ -89,10 +89,8 @@ class HumbugPlugin(Component):
`old_values` is a dictionary containing the previous values of the `old_values` is a dictionary containing the previous values of the
fields that have changed. fields that have changed.
""" """
if not comment and not set(old_values.keys()).intersection(set(config.TRAC_NOTIFY_FIELDS)): if not (set(old_values.keys()).intersection(set(config.TRAC_NOTIFY_FIELDS)) or
# This is probably someone going through trac and updating (comment and "comment" in set(config.TRAC_NOTIFY_FIELDS))):
# the priorities; this can result in a lot of messages
# nobody wants to read, so don't send them without a comment.
return return
content = "%s updated %s" % (author, markdown_ticket_url(ticket)) content = "%s updated %s" % (author, markdown_ticket_url(ticket))

View file

@ -31,17 +31,17 @@ TRAC_BASE_TICKET_URL = "https://trac.example.com/ticket"
# Most people find that having every change in Trac result in a # Most people find that having every change in Trac result in a
# notification is too noisy -- in particular, when someone goes # notification is too noisy -- in particular, when someone goes
# through recategorizing a bunch of tickets, that can often be noisy # through recategorizing a bunch of tickets, that can often be noisy
# and annoying. We solve this issue by only sending a notification if # and annoying. We solve this issue by only sending a notification
# one of the more important fields is changed or the person making the # for changes to the fields listed below.
# change makes a comment.
# #
# Total list of fields is: # Total list of possible fields is:
# (priority, milestone, cc, owner, keywords, component, severity, # (priority, milestone, cc, owner, keywords, component, severity,
# type, versions, description, resolution, summary) # type, versions, description, resolution, summary, comment)
# #
# The following is the list of fields which can be changed without # The following is the list of fields which can be changed without
# triggering a Humbug notification # triggering a Humbug notification; change these to match your team's
TRAC_NOTIFY_FIELDS = ["description", "summary", "resolution"] # workflow.
TRAC_NOTIFY_FIELDS = ["description", "summary", "resolution", "comment"]
## If properly installed, the Humbug API should be in your import ## If properly installed, the Humbug API should be in your import
## path, but if not, set a custom path below ## path, but if not, set a custom path below