Skip to content

Sets labels for a GitHub repository, including renaming existing similar labels. 🏷️

License

Notifications You must be signed in to change notification settings

JoshuaKGoldberg/set-github-repository-labels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Set GitHub Repository Labels

Sets labels for a GitHub repository, including renaming existing similar labels. 🏷️

πŸ‘ͺ All Contributors: 1 🀝 Code of Conduct: Kept πŸ§ͺ Coverage πŸ“ License: MIT πŸ“¦ npm version πŸ’ͺ TypeScript: Strict

Usage

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.

Node.js API

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",
});

Shell

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"`;

Development

See .github/CONTRIBUTING.md, then .github/DEVELOPMENT.md. Thanks! πŸ’–

Contributors

Josh Goldberg ✨
Josh Goldberg ✨

πŸ’» πŸ–‹ πŸ“– πŸ€” πŸš‡ 🚧 πŸ“† πŸ”§

πŸ’ This package was templated with create-typescript-app using the create engine.

About

Sets labels for a GitHub repository, including renaming existing similar labels. 🏷️

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published