https://github.com/cogniwave/gh-label-sync
This tool allows you to synchronize labels between two GitHub repositories. It retrieves the labels from a source repository and updates the labels in the target repository.
https://github.com/cogniwave/gh-label-sync
bun devtools github npm-package typescript
Last synced: about 1 year ago
JSON representation
This tool allows you to synchronize labels between two GitHub repositories. It retrieves the labels from a source repository and updates the labels in the target repository.
- Host: GitHub
- URL: https://github.com/cogniwave/gh-label-sync
- Owner: cogniwave
- Created: 2025-03-28T12:39:42.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-28T16:59:59.000Z (about 1 year ago)
- Last Synced: 2025-03-28T17:45:39.433Z (about 1 year ago)
- Topics: bun, devtools, github, npm-package, typescript
- Language: TypeScript
- Homepage: https://cogniwave.github.io/gh-label-sync
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# gh-label-sync
This tool allows you to synchronize labels between two GitHub repositories. It retrieves the labels from a source repository and updates the labels in the target repository.
It requires a GitHub access token with the necessary permissions to manage labels on GitHub repositories.
# GitHub Labels Sync Tool
This tool allows you to synchronize labels between two GitHub repositories. It retrieves the labels from a source repository and updates the labels in the target repository.
It requires a GitHub access token with the necessary permissions to manage labels on GitHub repositories.
## Setup
### Instalation
Install it globally or locally with whatever package manager you use
```bash
npm install -g gh-sync-labels
pnpm add -g gh-sync-labels
yarn global add gh-sync-labels
bun add gh-sync-labels
```
### Direct Execution with npx (or other runners)
If you prefer not to install the tool globally, you can run it directly using:
```bash
npx gh-sync-labels
bunx gh-sync-labels
yarn dlx gh-sync-labels
pnpm gh-sync-labels
```
### Token
Before using the tool, you need to create a GitHub access token with the following required permissions:
- **repo**: To manage repositories (read and write labels).
- **repo:status**: To get the status of repository labels.
- **repo:labels**: To view and modify the labels of a repository.
## Usage
Once you have your GitHub token, you can use the tool to sync labels between repositories.
### Command Syntax
```bash
gh-sync-labels [options]
```
### Arguments
- `origin `: The repository from which you want to copy labels in the format of `{owner}/{repository}`
- `target `: The repository where you want to update the labels in the format of `{owner}/{repository}`
### Options
- `-t, --token `: The GitHub token required to interact with GitHub's API. Ensure your token has the necessary permissions (`repo`)
If no token option is provided, *gh-sync-labels* will look for it in your environment variables under `GITHUB_TOKEN`
- `--verbose`: Runs the tool in verbose mode, providing detailed logs about the operations being performed.
### Example Usage
1. To synchronize labels from `repo-a` to `repo-b`:
```bash
gh-sync-labels owner/repo-a owner/repo-b --token your_github_token
```
2. To synchronize labels from `repo-a` to `repo-b` with implicit token:
```bash
export $GITHUB_TOKEN = your_github_token
gh-sync-labels owner/repo-a owner/repo-b
```
2. To run the tool in verbose mode:
```bash
gh-sync-labels owner/repo-a owner/repo-b --verbose
```
## Disclaimer
There are still improvements needed on this:
- proper documentation
- sync multiple repos at the same time
- support for repos in org
- deployment flow
- add proper versioning with
## Development
```bash
bun install
```
To run:
```bash
bun dev
```