[Checkins] SVN: zope.repositorypolicy/trunk/s - added a new script that sends out a summary email listing
Jens Vagelpohl
jens at dataflake.org
Thu Mar 18 13:31:06 EDT 2010
Log message for revision 110058:
- added a new script that sends out a summary email listing
faulty branches only. This email is suitable for mailing
list distribution, it is at most 20KB in size.
Changed:
U zope.repositorypolicy/trunk/setup.py
U zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py
-=-
Modified: zope.repositorypolicy/trunk/setup.py
===================================================================
--- zope.repositorypolicy/trunk/setup.py 2010-03-18 15:49:21 UTC (rev 110057)
+++ zope.repositorypolicy/trunk/setup.py 2010-03-18 17:31:05 UTC (rev 110058)
@@ -23,6 +23,7 @@
[console_scripts]
zope-org-check-repos = zope.repositorypolicy.repository:main
zope-org-check-repos-mail = zope.repositorypolicy.repository:main_mail
+ zope-org-check-repos-summarymail = zope.repositorypolicy.repository:main_summarymail
zope-org-check-project = zope.repositorypolicy.project:main
zope-org-fix-project = zope.repositorypolicy.copyright:main
""")
Modified: zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py
===================================================================
--- zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py 2010-03-18 15:49:21 UTC (rev 110057)
+++ zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py 2010-03-18 17:31:05 UTC (rev 110058)
@@ -95,3 +95,40 @@
(sender_address, target_address, subject, body))
mailserver.sendmail(sender_address, [target_address], msg)
mailserver.quit()
+
+SUMMARY_TEMPLATE = """\
+The packages and branches listed below have failed one or
+more repository policy checks. To see more detailed output,
+use the "zope.repositorypolicy" package and run its script
+"zope-org-check-project" against a checkout of the branch
+in question.
+
+%s
+
+"""
+
+def main_summarymail():
+ smtp_host, sender_address, target_address = sys.argv[1:]
+ stamp = datetime.datetime.now().isoformat()
+ branches = set([])
+
+ checker = Checker()
+ for entry in checker.run():
+ branches.add(entry.split(':')[0])
+
+ if branches:
+ subject = 'FAILURE: Repository policy check failed on %i branches' % len(branches)
+ else:
+ subject = 'OK: Repository policy check found no errors'
+
+ branches = list(branches)
+ branches.sort()
+
+ body = SUMMARY_TEMPLATE % '\n'.join(branches)
+
+ mailserver = smtplib.SMTP(smtp_host)
+ msg = ('From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s' %
+ (sender_address, target_address, subject, body))
+ mailserver.sendmail(sender_address, [target_address], msg)
+ mailserver.quit()
+
More information about the checkins
mailing list