Skip to content

Instantly share code, notes, and snippets.

@gsnedders
Created November 6, 2017 23:01
Show Gist options
  • Save gsnedders/df4038ad0a3b986049a2d70d078b8d8a to your computer and use it in GitHub Desktop.
Save gsnedders/df4038ad0a3b986049a2d70d078b8d8a to your computer and use it in GitHub Desktop.
import time
from github3 import GitHub
rename = {
"compositing-1": "compositing",
'css-align-3': 'css-align',
'css-animations-1': 'css-animations',
'css-backgrounds-3': 'css-backgrounds',
'css-break-3': 'css-break',
'css-cascade-3': 'css-cascade',
'css-counter-styles-3': 'css-counter-styles',
'css-logical-properties-1': 'css-logical-properties',
'css-paint-api-1': 'css-paint-api',
'css-round-display-1': 'css-round-display',
'css-writing-modes-3': 'css-writing-modes',
'css3-color': 'css-color',
'css3-selectors': 'selectors',
'css-conditional-3': 'css-conditional',
'css-display-3': 'css-display',
'css-flexbox-1': 'css-flexbox',
'css-fonts-3': 'css-fonts',
'css-grid-1': 'css-grid',
'css-images-3': 'css-images',
'css-lists-3': 'css-lists',
'css-logical-1': 'css-logical',
'css-masking-1': 'css-masking',
'css-multicol-1': 'css-multicol',
'css-namespaces-3': 'css-namespaces',
'css-overflow-3': 'css-overflow',
'css-page-3': 'css-page',
'css-position-3': 'css-position',
'css-pseudo-4': 'css-pseudo',
'css-regions-1': 'css-regions',
'css-rhythm-1': 'css-rhythm',
'css-ruby-1': 'css-ruby',
'css-scoping-1': 'css-scoping',
'css-shapes-1': 'css-shapes',
'css-sizing-3': 'css-sizing',
'css-syntax-3': 'css-syntax',
'css-tables-3': 'css-tables',
'css-text-3': 'css-text',
'css-timing-1': 'css-timing',
'css-transforms-1': 'css-transforms',
'css-transforms-2': 'css-transforms',
'css-transitions-1': 'css-transitions',
'css-ui-3': 'css-ui',
'css-ui-4': 'css-ui',
'css-values-3': 'css-values',
'css-variables-1': 'css-variables',
'cssom-1': 'cssom',
'cssom-view-1': 'cssom-view',
'filter-effects-1': 'filter-effects',
'geometry-1': 'geometry',
'mediaqueries-3': 'mediaqueries',
'motion-1': 'motion',
'selectors4': 'selectors'
}
gh = GitHub()
wpt = gh.repository("w3c", "web-platform-tests")
labels = {x.name: x for x in wpt.labels()}
still_to_rename = set(rename.keys())
for old, new in rename.items():
if old not in labels:
print("%s does not exist" % old)
still_to_rename.remove(old)
elif new not in labels:
print("renaming %s to %s" % (old, new))
still_to_rename.remove(old)
label = labels[old]
label.update(new, label.color)
del labels[old]
labels[new] = label
time.sleep(1)
while len(still_to_rename) > 0:
old = still_to_rename.pop()
new = rename[old]
assert new in labels, "%s in %r" % (new, labels)
print("renaming %s to %s" % (old, new))
for issue in wpt.issues(labels=[old], state="all"):
print("updating issue %d" % issue.number)
issue_labels = {x.name for x in issue.labels()}
if new in issue_labels:
issue.remove_label(old)
else:
issue_labels.remove(old)
issue_labels.add(new)
issue.replace_labels(list(issue_labels))
label = labels[old]
label.delete()
del labels[old]
time.sleep(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment