🏷
GitHub CLIで別リポジトリのlabelをcloneする
先日GitHubのIssueを別リポジトリへ移行する機会があったが、isseueに紐づくlabelが継承されていなかったため、移行元のリポジトリからcloneすることにした。
GitHub CLIのインストール
labelのcloneはGitHub CLIを使って行う。
ドキュメント記載のコマンドでGitHub CLIをインストールする。
% brew install gh
アップデートが必要な際は以下コマンドを実行。
% brew upgrade gh
GitHubアカウントの認証
GitHub CLIインストール後、GitHubアカウントの認証を行う。
以下コマンドで認証フロー開始。
% gh auth login
認証に必要な質問に答えていく。
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser
最後にワンタイムコードが発行されるので、ブラウザで開かれたGitHubの画面にコピペする
! First copy your one-time code: xxxx-xxxx
Press Enter to open github.com in your browser...
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as unsolublesugar
無事に認証完了すればGitHub CLIコマンドが使えるようになる。
使えるコマンドやオプションの詳細はマニュアルを参照。
gh labelでlabelをcloneする
label関連の操作は gh label
コマンドを使う。
- gh label clone
- gh label create
- gh label delete
- gh label edit
- gh label list
例えばGitHubリポジトリのlabel一覧取得とかできる。もちろん作成、削除、編集も可能。
% gh label list -R OWNER/REPO
Showing 10 of 10 labels in OWNER/REPO
bug Something isn't working #d73a4a
documentation Improvements or additions to documentation #0075ca
duplicate This issue or pull request already exists #cfd3d7
enhancement New feature or request #a2eeef
good first issue Good for newcomers #7057ff
help wanted Extra attention is needed #008672
invalid This doesn't seem right #e4e669
question Further information is requested #d876e3
wontfix This will not be worked on #ffffff
refactor-devops refactoring or DevOps-related #82D694
REPO-A
のlabelを別リポジトリ REPO-B
にクローンする場合は、以下コマンドを叩けばOK。
% gh label clone OWNER/REPO-A -R OWNER/REPO-B
✓ Cloned 10 labels from OWNER/REPO-A to OWNER/REPO-B
事前にlabelをCloneしておけば、isseue移行時も同一名称のlabelが存在していればそのまま継承される。すでに運用中のリポジトリでlabelを整えている場合 gh clone
で移植するのが良さそう。
Discussion