0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-29 20:37:51 +00:00

Update pw script to send better email notifications

The workflow is now:

$ pw branch NNN

  To create a branch with patch numb er NNN

$ git commit --amend

  To check and modify the commit message where necessary

$ pw merge -m "Comment for notification email" NNN

  To merge that branch.  The -m comment will be added to the
  notification email that is sent to the mailing list.

The -m comment can also be given to the update command,if the update
sends an email:

$ pw update -s "changes requested" -m "comment for email" NNN
This commit is contained in:
Carsten Dominik 2010-07-20 14:43:11 +02:00
parent 08a7f6a6df
commit d2e7f9b11a

View file

@ -36,8 +36,10 @@ import re
from email.mime.text import MIMEText
notify_on_state_change = {
'Accepted': 'emacs-orgmode@gnu.org',
'RFC': 'emacs-orgmode@gnu.org'
'accepted': 'emacs-orgmode@gnu.org',
'rejected': 'emacs-orgmode@gnu.org',
'changes requested': 'emacs-orgmode@gnu.org',
'rfc': 'emacs-orgmode@gnu.org'
}
# Default Patchwork remote XML-RPC server URL
@ -278,7 +280,7 @@ def action_apply(rpc, patch_id):
sys.exit(1)
def action_update_patch(rpc, patch_id, state = None, commit = None,
delegate_str = "", archived = False):
delegate_str = "", comment_str = "No comment", archived = False):
patch = rpc.patch_get(patch_id)
if patch == {}:
sys.stderr.write("Error getting information on patch ID %d\n" % \
@ -304,7 +306,7 @@ def action_update_patch(rpc, patch_id, state = None, commit = None,
sys.exit(1)
params['state'] = state_id
if state in notify_on_state_change:
if state.lower() in notify_on_state_change:
if not delegate_id:
sys.stderr.write("Error: Delete (-d) required for this update\n")
sys.exit(1)
@ -316,17 +318,26 @@ def action_update_patch(rpc, patch_id, state = None, commit = None,
cc_addr = '%s <%s>' % (submitter['name'], submitter['email'])
to_addr = notify_on_state_change[state]
longdesc = '''Patch %s (http://patchwork.newartisans.com/patch/%s/) is now %s.
orig_mail = rpc.patch_get_mbox(patch_id)
orig_mail = '> ' + orig_mail.replace('\n','\n> ')
longdesc = '''Patch %s (http://patchwork.newartisans.com/patch/%s/) is now "%s".
Maintaner comment: %s
This relates to the following submission:
http://mid.gmane.org/%s''' % \
(patch['id'], patch['id'], state, urllib.quote(patch['msgid']))
shortdesc = 'Patch %s %s' % (patch['id'], state)
http://mid.gmane.org/%s
Here is the original message containing the patch:
%s''' % \
(patch['id'], patch['id'], state, comment_str, urllib.quote(patch['msgid']), orig_mail)
shortdesc = '[%s] %s' % (state, patch['name'])
msg = MIMEText(longdesc)
msg['Subject'] = 'Patchwork: ' + shortdesc
msg['Subject'] = shortdesc
msg['From'] = from_addr
msg['To'] = to_addr
#msg['Cc'] = cc_addr
@ -431,7 +442,7 @@ def branch_with(patch_id, rpc, delegate_str):
print sha
def merge_with(patch_id, rpc, delegate_str):
def merge_with(patch_id, rpc, delegate_str, comment_str):
s = rpc.patch_get_mbox(patch_id)
if len(s) > 0:
print unicode(s).encode("utf-8")
@ -463,7 +474,7 @@ auth_actions = ['update', 'branch', 'merge']
def main():
try:
opts, args = getopt.getopt(sys.argv[2:], 's:p:w:d:n:c:h:')
opts, args = getopt.getopt(sys.argv[2:], 's:p:w:d:n:c:h:m:')
except getopt.GetoptError, err:
print str(err)
usage()
@ -506,6 +517,8 @@ def main():
commit_str = value
elif name == '-h':
hash_str = value
elif name == '-m':
comment_str = value
elif name == '-n':
try:
filt.add("max_count", int(value))
@ -585,7 +598,16 @@ def main():
sys.stderr.write("Invalid patch ID given\n")
sys.exit(1)
merge_with(patch_id, rpc, config.get('auth', 'username'))
merge_with(patch_id, rpc, config.get('auth', 'username'), comment_str)
elif action == 'test':
patch_id = patch_id or int(args[0])
patch = rpc.patch_get(patch_id)
s = rpc.patch_get_mbox(patch_id)
print "xxx %s xxx"
print "xxx %s xxx" % patch['name']
print "xxx %s xxx" % rpc.patch_get_mbox(patch_id)
elif action == 'view' or action == 'show':
try:
@ -624,7 +646,7 @@ def main():
sys.exit(1)
action_update_patch(rpc, patch_id, state = state_str,
commit = commit_str, delegate_str = delegate_str)
commit = commit_str, delegate_str = delegate_str, comment_str = comment_str)
else:
sys.stderr.write("Unknown action '%s'\n" % action)