mirror of
https://gitlab.wikimedia.org/ladsgroup/Phabricator-maintenance-bot
synced 2024-11-28 15:02:39 +01:00
Make sure project grouper work with milestones
This commit is contained in:
parent
9eb22d24b9
commit
717f9ebc7d
2 changed files with 8 additions and 2 deletions
5
lib.py
5
lib.py
|
@ -45,6 +45,11 @@ class Client(object):
|
||||||
raise Exception('No object found for %s' % label)
|
raise Exception('No object found for %s' % label)
|
||||||
return self.phid_cache[label]
|
return self.phid_cache[label]
|
||||||
|
|
||||||
|
def getSubprojects(self, phid):
|
||||||
|
"""Lookup information on a Phab object by name."""
|
||||||
|
r = self.post('project.search', {'constraints': {'isMilestone': True, 'ancestors': [phid]}})
|
||||||
|
return [i['phid'] for i in r['data']]
|
||||||
|
|
||||||
def getColumns(self, project_phid):
|
def getColumns(self, project_phid):
|
||||||
if not self.column_cache.get(project_phid):
|
if not self.column_cache.get(project_phid):
|
||||||
self.column_cache[project_phid] = self.post(
|
self.column_cache[project_phid] = self.post(
|
||||||
|
|
|
@ -282,7 +282,8 @@ client = Client.newFromCreds()
|
||||||
for rule in rules:
|
for rule in rules:
|
||||||
handled_tasks = []
|
handled_tasks = []
|
||||||
|
|
||||||
wanted_project_phid = client.lookupPhid('#' + rule['add'])
|
wanted_project_phid = client.lookupPhid('#' + rule['add'].replace(' ', '_'))
|
||||||
|
subprojects = set(client.getSubprojects(wanted_project_phid) + [wanted_project_phid])
|
||||||
for project_name in rule['in']:
|
for project_name in rule['in']:
|
||||||
project_name = project_name.replace(' ', '_')
|
project_name = project_name.replace(' ', '_')
|
||||||
try:
|
try:
|
||||||
|
@ -294,7 +295,7 @@ for rule in rules:
|
||||||
if task_phid in handled_tasks:
|
if task_phid in handled_tasks:
|
||||||
continue
|
continue
|
||||||
task = client.taskDetails(task_phid)
|
task = client.taskDetails(task_phid)
|
||||||
if wanted_project_phid in task['projectPHIDs']:
|
if subprojects.intersection(set(task['projectPHIDs'])):
|
||||||
continue
|
continue
|
||||||
if rule.get('once') == True:
|
if rule.get('once') == True:
|
||||||
is_already_added = False
|
is_already_added = False
|
||||||
|
|
Loading…
Reference in a new issue