Sets labels for a GitHub repository, including renaming existing similar labels. π·οΈ
Sets a collection of labels on a repository.
For each outcome label, if its name, the same words excluding its prefix:
, or any of its aliases already exists, that existing label is updated.
Otherwise, a new label is created.
npm i set-github-repository-labels
import { setGitHubRepositoryLabels } from "set-github-repository-labels";
await setGitHubRepositoryLabels({
labels: [
{
color: "d73a4a",
description: "Something isn't working π",
name: "type: bug",
},
{
aliases: ["enhancement"],
color: "a2eeef",
description: "New enhancement or request π",
name: "type: feature",
},
],
owner: "JoshuaKGoldberg",
repository: "create-typescript-app",
});
set-github-repository-labels
can be run as an npx
command.
Option | Type | Default or Required | Description |
---|---|---|---|
--auth |
string |
process.env.GH_TOKEN or executing gh auth token |
Auth token for GitHub from octokit-from-auth |
--bandwidth |
number |
6 |
Maximum parallel requests to start at once |
--labels |
string |
(required) | Raw JSON string |
--owner |
string |
(required) | Owning organization or username for the repository |
--repository |
string |
(required) | Title of the repository |
Because labels
takes in data as a raw JSON string, so you'll most likely want to pipe data to it from a JSON source:
npx set-github-repository-labels --labels "$(cat labels.json)" --owner JoshuaKGoldberg --repository "create-typescript-app"
To call it programmatically, you can use with something like execa
:
import $ from "execa";
import fs from "node:fs/promises";
const labels = (await fs.readFile("labels.json")).toString();
await $`npx set-github-repository-labels --labels ${labels} --owner JoshuaKGoldberg --repository "create-typescript-app"`;
See .github/CONTRIBUTING.md
, then .github/DEVELOPMENT.md
.
Thanks! π
Josh Goldberg β¨ π» π π π€ π π§ π π§ |
π This package was templated with
create-typescript-app
using thecreate
engine.