Merge "Add change abandoned logic to jeepyb"
diff --git a/jeepyb/cmd/expire_old_reviews.py b/jeepyb/cmd/expire_old_reviews.py
index 77f9856..fe5956f 100644
--- a/jeepyb/cmd/expire_old_reviews.py
+++ b/jeepyb/cmd/expire_old_reviews.py
@@ -27,10 +27,10 @@
def expire_patch_set(ssh, patch_id, patch_subject):
- message = ('code review expired after 1 week of no activity'
- ' after a negative review, it can be restored using'
+ message = ('Code review expired after 1 week of no activity'
+ ' after a negative review. It can be restored using'
' the \`Restore Change\` button under the Patch Set'
- ' on the web interface')
+ ' on the web interface.')
command = ('gerrit review --abandon '
'--message="{message}" {patch_id}').format(
message=message,
diff --git a/jeepyb/cmd/manage_projects.py b/jeepyb/cmd/manage_projects.py
index 2dece22..92962c8 100644
--- a/jeepyb/cmd/manage_projects.py
+++ b/jeepyb/cmd/manage_projects.py
@@ -537,7 +537,7 @@
else:
logging.basicConfig(level=logging.ERROR)
- default_has_github = registry.get('has-github', True)
+ default_has_github = registry.get_defaults('has-github', True)
LOCAL_GIT_DIR = registry.get_defaults('local-git-dir', '/var/lib/git')
JEEPYB_CACHE_DIR = registry.get_defaults('jeepyb-cache-dir',
diff --git a/jeepyb/cmd/notify_impact.py b/jeepyb/cmd/notify_impact.py
index c3c3303..09b92bb 100644
--- a/jeepyb/cmd/notify_impact.py
+++ b/jeepyb/cmd/notify_impact.py
@@ -22,7 +22,7 @@
# --change-url https://review.openstack.org/55607 --project nova/ \
# --branch master --commit c262de4417d48be599c3a7496ef94de5c84b188c \
# --impact DocImpact --dest-address none@localhost --dryrun \
-# --ignore-duplicates --config foo.yaml \
+# --config foo.yaml \
# change-merged
#
# But you'll need a git repository at /home/gerrit2/review_site/git/nova.git
@@ -102,7 +102,7 @@
Create a launchpad bug in a LP project, titled with the first line of
the git commit message, with the content of the git_log prepended
with the Gerrit review URL. Tag the bug with the name of the repository
- it came from. Don't create a duplicate bug. Returns link to the bug.
+ it came from. Returns link to the bug.
"""
# Determine what LP project to use
@@ -136,28 +136,24 @@
bug_descr = args.change_url + prelude + '\n' + git_log
project = lpconn.projects[lp_project]
- # check for existing bugs by searching for the title, to avoid
- # creating multiple bugs per review
buglink = None
author_class = None
- potential_dupes = project.searchTasks(search_text=bug_title)
- if len(potential_dupes) == 0 or args.ignore_duplicates:
- buginfo, buglink = actions.create(project, bug_title, bug_descr, args)
+ buginfo, buglink = actions.create(project, bug_title, bug_descr, args)
- # If the author of the merging patch matches our configured
- # subscriber lists, then subscribe the configured victims.
- for email_address in config.get('author_map', {}):
- email_re = re.compile('^Author:.*%s.*' % email_address)
- for line in bug_descr.split('\n'):
- m = email_re.match(line)
- if m:
- author_class = config['author_map'][email_address]
+ # If the author of the merging patch matches our configured
+ # subscriber lists, then subscribe the configured victims.
+ for email_address in config.get('author_map', {}):
+ email_re = re.compile('^Author:.*%s.*' % email_address)
+ for line in bug_descr.split('\n'):
+ m = email_re.match(line)
+ if m:
+ author_class = config['author_map'][email_address]
- if author_class:
- config = config.get('subscriber_map', {}).get(author_class, [])
- for subscriber in config:
- actions.subscribe(buginfo, subscriber)
+ if author_class:
+ config = config.get('subscriber_map', {}).get(author_class, [])
+ for subscriber in config:
+ actions.subscribe(buginfo, subscriber)
return buglink
@@ -238,13 +234,6 @@
parser.add_argument('--no-dryrun', dest='dryrun', action='store_false')
parser.set_defaults(dryrun=False)
- # Ignore duplicates, useful for testing
- parser.add_argument('--ignore-duplicates', dest='ignore_duplicates',
- action='store_true')
- parser.add_argument('--no-ignore-duplicates', dest='ignore_duplicates',
- action='store_false')
- parser.set_defaults(ignore_duplicates=False)
-
args = parser.parse_args()
# NOTE(mikal): the basic idea here is to let people watch