From 5bbb53e625c4d6054ab2fe901272c4ae442df6aa Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Wed, 13 Feb 2013 16:28:19 -0500 Subject: [PATCH] humbug_trac: Make notifications for comments configurable. (imported from commit 8eeea4051194d0038b039befd9b9a0ee4099a30c) --- bots/humbug_trac_config.py | 47 ++++-------------------------- integrations/humbug_trac.py | 6 ++-- integrations/humbug_trac_config.py | 14 ++++----- 3 files changed, 15 insertions(+), 52 deletions(-) diff --git a/bots/humbug_trac_config.py b/bots/humbug_trac_config.py index e051f1f..5c8deb1 100644 --- a/bots/humbug_trac_config.py +++ b/bots/humbug_trac_config.py @@ -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" diff --git a/integrations/humbug_trac.py b/integrations/humbug_trac.py index 280b28b..ca089d3 100644 --- a/integrations/humbug_trac.py +++ b/integrations/humbug_trac.py @@ -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)) diff --git a/integrations/humbug_trac_config.py b/integrations/humbug_trac_config.py index 1f46379..a115497 100644 --- a/integrations/humbug_trac_config.py +++ b/integrations/humbug_trac_config.py @@ -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