https://github.com/siketyan/gh-labelx
🏷 Creates issue labels on GitHub idempotently through HashiCorp Terraform.
https://github.com/siketyan/gh-labelx
cli github-issues labels rust terraform
Last synced: 7 months ago
JSON representation
🏷 Creates issue labels on GitHub idempotently through HashiCorp Terraform.
- Host: GitHub
- URL: https://github.com/siketyan/gh-labelx
- Owner: siketyan
- License: mit
- Created: 2022-07-23T16:59:14.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-05T08:40:47.000Z (over 1 year ago)
- Last Synced: 2025-02-05T09:29:58.376Z (over 1 year ago)
- Topics: cli, github-issues, labels, rust, terraform
- Language: Rust
- Homepage: https://crates.io/crates/gh-labelx
- Size: 235 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# gh-labelx
[](https://github.com/siketyan/gh-labelx/actions/workflows/rust.yml)
[](https://crates.io/crates/gh-labelx)
Creates issue labels on GitHub idempotently through HashiCorp Terraform.
## Features
- **Idempotent**: Apply twice, changes once.
- **Easy**: No configuration required if you are using gh CLI.
- **Simple**: Just write a simple YAML manifest to create many labels at once.
- **Extensible**: Requests to GitHub are powered by Terraform. You can customise additional labels or properties using hooks after generation.
## Prerequisites
gh-labelx requires HashiCorp Terraform.
On macOS, you can install them via Homebrew:
```shell
brew install terraform
```
For other platforms, refer the official documentation:
https://www.terraform.io/downloads
## Getting started
```shell
gh extension install siketyan/gh-labelx
```
## Usages
First, write your manifest in YAML format:
```yaml
---
labels:
- name: feature
color: '0000FF'
- name: fix
color: 'FF0000'
- name: refactor
color: '00FF00'
```
Check your manifest is correct and can be applied to GitHub:
```shell
gh labelx -o -r plan -f
```
Now apply to your GitHub repository:
```shell
gh labelx -o -r apply -f
```
It's easy!