Last active
June 8, 2025 14:14
-
Star
(155)
You must be signed in to star a gist -
Fork
(33)
You must be signed in to fork a gist
-
-
Save MoOx/93c2853fee760f42d97f to your computer and use it in GitHub Desktop.
Export/import github labels
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// go on you labels pages | |
// eg https://github.com/cssnext/cssnext/labels | |
// paste this script in your console | |
// copy the output and now you can import it using https://github.com/popomore/github-labels ! | |
var labels = []; | |
[].slice.call(document.querySelectorAll(".label-link")) | |
.forEach(function(element) { | |
labels.push({ | |
name: element.textContent.trim(), | |
// using style.backgroundColor might returns "rgb(...)" | |
color: element.getAttribute("style") | |
.replace("background-color:", "") | |
.replace(/color:.*/,"") | |
.trim() | |
// github wants hex code only without # or ; | |
.replace(/^#/, "") | |
.replace(/;$/, "") | |
.trim(), | |
}) | |
}) | |
console.log(JSON.stringify(labels, null, 2)) |
-
Install this for your repository : https://probot.github.io/apps/settings/
-
Go to any repo from where you want to extract the labels
e.g https://github.com/maheshj01/pastelog/issues/labels -
paste the below script in the chrome console
below script extracts the labels and generates output in yml format
var labels = [];
function hex(x) {
return ("0" + parseInt(x).toString(16)).slice(-2);
}
function rgba2hex(rgba) {
rgba = rgba.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/);
return hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]);
}
[].slice.call(document.querySelectorAll(".js-label-link"))
.forEach(function(element) {
labels.push({
name: element.textContent.trim(),
description: element.parentElement.nextElementSibling.firstElementChild.innerText.trim(),
// Extract color using rgba2hex function
color: rgba2hex(window.getComputedStyle(element).getPropertyValue("background-color")),
})
});
let yamlOutput = labels.map(label =>
`- name: ${label.name}\n description: ${label.description}\n color: ${label.color}`
).join("\n");
console.log(yamlOutput);
- copy the output and go to your repository and create
.github/settings.yaml
and paste the labels copied in step 3
sample settings.yml
for all configurations for this settings refer link in step 1
repository:
name: repo-name
description: repo-description
homepage: https://example.com
topics: nextjs, tailwindcss, typescript, chrome-extension
private: true
labels:
- name: bug
description: Something isn't working
color: d73a4a
- name: documentation
description: Improvements or additions to documentation
color: 0075ca
- name: duplicate
description: This issue or pull request already exists
color: cfd3d7
milestones:
- title: milestone-title
description: milestone-description
state: open
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
tl;dr
gh label clone src-org/src_repo --repo dest-org/dest_org
If you're coming by this thread in 2024 or later, I highly recommend seeing the official GitHub CLI [1].
[1] https://cli.github.com/manual/gh_label_clone