🔖

GithubのLabelsをGUIでなくjsonで一括登録する方法

2024/09/27に公開

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"
  }
]

2. (入っていなければ)Github CLI(ghコマンド)をインストール

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