Add security impact email notifications.
Fixes bug #1070577
Make the notify_impact script generic so that it can handle different
types of notifications. Then add a SecurityImpact notification.
Change-Id: Id4bbf7db29e36dde783328e31685079e79d0b1e9
Reviewed-on: https://review.openstack.org/14856
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
diff --git a/notify_doc_impact.py b/notify_impact.py
similarity index 74%
rename from notify_doc_impact.py
rename to notify_impact.py
index 54e69bf..5c8ba8c 100755
--- a/notify_doc_impact.py
+++ b/notify_impact.py
@@ -27,31 +27,30 @@
BASE_DIR = '/home/gerrit2/review_site'
EMAIL_TEMPLATE = """
Hi, I'd like you to take a look at this patch for potential
-documentation impact.
+%s.
%s
Log:
%s
"""
-DEST_ADDRESS = 'openstack-docs@lists.openstack.org'
def process_impact(git_log, args):
- """Notify doc team of doc impact"""
- email_content = EMAIL_TEMPLATE % (args.change_url, git_log)
+ """Notify mail list of impact"""
+ email_content = EMAIL_TEMPLATE % (args.impact, args.change_url, git_log)
msg = MIMEText(email_content)
- msg['Subject'] = '[%s] DocImpact review request change %s' % \
- (args.project, args.change)
+ msg['Subject'] = '[%s] %s review request change %s' % \
+ (args.project, args.impact, args.change)
msg['From'] = 'gerrit2@review.openstack.org'
- msg['To'] = DEST_ADDRESS
+ msg['To'] = args.dest_address
s = smtplib.SMTP('localhost')
- s.sendmail('gerrit2@review.openstack.org', DEST_ADDRESS, msg.as_string())
+ s.sendmail('gerrit2@review.openstack.org',
+ args.dest_address, msg.as_string())
s.quit()
-def docs_impacted(git_log):
- """Determine if a changes log indicates there is a doc impact"""
- impact_regexp = r'DocImpact'
- return re.search(impact_regexp, git_log, re.IGNORECASE)
+def impacted(git_log, impact_string):
+ """Determine if a changes log indicates there is an impact"""
+ return re.search(impact_string, git_log, re.IGNORECASE)
def extract_git_log(args):
"""Extract git log of all merged commits"""
@@ -75,14 +74,17 @@
#patchset-created
parser.add_argument('--uploader', default=None)
parser.add_argument('--patchset', default=None)
+ # Not passed by gerrit:
+ parser.add_argument('--impact', default=None)
+ parser.add_argument('--dest-address', default=None)
args = parser.parse_args()
# Get git log
git_log = extract_git_log(args)
- # Process doc_impacts found in git log
- if docs_impacted(git_log):
+ # Process impacts found in git log
+ if impacted(git_log, args.impact):
process_impact(git_log, args)