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 -*-
#
# Copyright © 2012 Humbug, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# 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.
# Humbug Inc's internal trac plugin configuration.
# The plugin and example config are under api/integrations/
# Leaving all the instructions out of this file to avoid having to
# sync them as we update the comments.
# Change these constants:
HUMBUG_USER = "humbug+trac@humbughq.com"
HUMBUG_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
STREAM_FOR_NOTIFICATIONS = "trac"
TRAC_BASE_TICKET_URL = "https://trac.humbughq.com/ticket"
# Most people find that having every change in Trac result in a
# 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
TRAC_NOTIFY_FIELDS = ["description", "summary", "resolution", "comment"]
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"

View file

@ -89,10 +89,8 @@ class HumbugPlugin(Component):
`old_values` is a dictionary containing the previous values of the
fields that have changed.
"""
if not comment and not set(old_values.keys()).intersection(set(config.TRAC_NOTIFY_FIELDS)):
# This is probably someone going through trac and updating
# the priorities; this can result in a lot of messages
# nobody wants to read, so don't send them without a comment.
if not (set(old_values.keys()).intersection(set(config.TRAC_NOTIFY_FIELDS)) or
(comment and "comment" in set(config.TRAC_NOTIFY_FIELDS))):
return
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
# 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.
# and annoying. We solve this issue by only sending a notification
# for changes to the fields listed below.
#
# Total list of fields is:
# Total list of possible fields is:
# (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
# triggering a Humbug notification
TRAC_NOTIFY_FIELDS = ["description", "summary", "resolution"]
# triggering a Humbug notification; change these to match your team's
# workflow.
TRAC_NOTIFY_FIELDS = ["description", "summary", "resolution", "comment"]
## If properly installed, the Humbug API should be in your import
## path, but if not, set a custom path below