🔖
GithubのLabelsをGUIでなくjsonで一括登録する方法
GithubのLabelsをjsonファイルで定義し一括作成する方法を説明します。
環境
- Mac / Linux
- その他でも基本的に実装可能だと思います
- ghが入っている前提とします
手順
※ 後からでも良いですが、先に既存のラベルはすべて削除しておくと便利
1. Labelの定義用のjsonファイルを作成
labels.json
というファイルを作成し、以下のようにLabelを定義します。
参考
[
{
"name": "bug",
"color": "d73a4a",
"description": "Something isn't working"
},
{
"name": "documentation",
"color": "0075ca",
"description": "Improvements or additions to documentation"
},
{
"name": "duplicate",
"color": "cfd3d7",
"description": "This issue or pull request already exists"
}
]
gh
コマンド)をインストール
2. (入っていなければ)Github CLI(Github CLIを使うと、コマンドラインからGithubの操作ができるようになります。
インストール方法は公式ドキュメントを参照してください。
3. スクリプトを作成してLabelを一括作成
以下のようなシェルスクリプト(create_labels.sh
)を作成します。
#!/bin/bash
REPO="ユーザー名/対象のリポジトリ名"
for row in $(jq -r '.[] | @base64' labels.json); do
_jq() {
echo ${row} | base64 --decode | jq -r ${1}
}
name=$(_jq '.name')
color=$(_jq '.color')
description=$(_jq '.description')
gh label create ${name} -c "${color}" -d "${description}" -R ${REPO}
done
REPO
変数にLabelを設定したいリポジトリを指定します。
このスクリプトを実行すると、labels.json
で定義されたLabelがリポジトリに一括で作成されます。
4. スクリプトを実行
以下のコマンドでスクリプトを実行します。
bash create_labels.sh
Githubのリポジトリ上でラベルを確認します
まとめ
以上の手順で、GithubのLabelsをjsonファイルで定義し、一括作成することができます。
運用更新:jsonファイルを変更することで、Labelの追加・修正・削除が簡単にできるようになります。
Discussion