くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

GitHub CLI(gh)とgithub-label-syncでIssue Labelをエクスポート/インポートする

以前調べたghコマンドでは、同期はできるけど、
エクスポート/インポートみたいなのはがんばらないといけなさそう。。
なので、エクスポート/ちょっと変更/インポートみたいなのはめんどい。。

いろいろ見てると、github-label-syncで、
json/yamlファイルからインポート(というか同期)ができるよう(*´ω`*)

なので、2つを使って、Issue Labelをエクスポート/インポートを試してみた

ghでエクスポート

まずは、GitHub CLI(ghコマンド)でエクスポート。
github-label-syncで取り込める形式にしておく。

# GitHub CLI(gh)のインストール
$ brew install gh

# GitHubのログイン
$ gh auth login

# ラベルのエクスポート
$ gh label list -R owner/repo --json="name,color,description" | jq > labels.json

github-label-syncでインポート

次にgithub-label-syncでインポート。
アクセストークンが必要だけど、ghでログインした際のトークンを利用する。
-dry-runがあるので試してから、実際に同期をおこなう。

# github-label-syncのインストール
$ npm install -g github-label-sync

# ghでログインしたトークンの確認
$ cat ~/.config/gh/hosts.yml 
github.com:
    user: YOUR_ACCOUNT_NAME
    oauth_token: gho_YOUR_ACCESS_TOKEN
    git_protocol: https

# ラベルのインポート(同期): Dry Run
$ github-label-sync -a gho_YOUR_ACCESS_TOKEN --dry-run -l labels.json owner/repo_new

# ラベルのインポート(同期)
$ github-label-sync -a gho_YOUR_ACCESS_TOKEN -l labels.json owner/repo_new

以上!! 便利(*´ω`*)

参考にしたサイト様