in dev/release/label_issues.py [0:0]
def relabel_issue(arrow_repo, issue_number):
#print(issue_number, 'fetching issue')
issue = arrow_repo.get_issue(issue_number)
print('considering issue', issue.html_url)
linked_issues = get_cross_referenced_issues(issue)
#print(' ', 'cross referenced issues:', linked_issues)
# Figure out what labels need to be added, if any
existing_labels = set()
for label in issue.labels:
existing_labels.add(label.name)
# find all labels to add
for linked_issue in linked_issues:
if linked_issue.pull_request is None:
print(' ', 'not pull request, skipping', linked_issue.html_url)
continue
if linked_issue.repository.name != 'arrow-rs':
print(' ', 'not in arrow-rs, skipping', linked_issue.html_url)
continue
print(' ', 'finding labels for linked pr', linked_issue.html_url)
linked_labels = set()
for label in linked_issue.labels:
linked_labels.add(label.name)
#print(' ', 'existing labels:', existing_labels)
labels_to_add = linked_labels.difference(existing_labels)
# remove any blacklist labels, if any
for l in BLACKLIST_LABELS:
labels_to_add.discard(l)
if len(labels_to_add) > 0:
print(' ', 'adding labels: ', labels_to_add, 'to', issue.number)
for label in labels_to_add:
issue.add_to_labels(label)
print(' ', 'added', label)
existing_labels.add(label)
# leave a note about what updated these labels
issue.create_comment('`label_issue.py` automatically added labels {} from #{}'.format(labels_to_add, linked_issue.number))