GitHubの画面上から操作できないことでも、CLIツールからなら操作できる場合があって便利だったので記事にしました。
概要
やりたいこと
新しくGitHubのリポジトリを作成するにあたって、ラベルを1つずつ作っていくのは手間なので既存のリポジトリからコピーしたい。
調べて分かったこと
- ブラウザからの操作では、そのような機能は無さそう
-
GitHub CLI という公式のコマンドラインツールが用意されている
- CLIならやりたいことができそう
ざっくり手順
- GitHub CLIをインストールする
- ターミナル上でログインする
gh auth login
- ラベルをコピーする
gh label clone <コピー元リポジトリ>
詳しい手順
1. GitHub CLIをインストールする
cli/cli: GitHub’s official command line tool
-
公式リポジトリの
README > Installation
に従ってgh
をインストールする- Linux(apt)の場合はこちらのページ
- バージョン確認
❯ gh --version gh version 2.23.0 (2023-02-08) https://github.com/cli/cli/releases/tag/v2.23.0
2. ターミナル上でログインする
認証方法は以下の2種類ありますが、私の場合はWSLかつGUIなしの環境のため、この記事ではauthentication tokenを使う方法で進めています。
- Login with a web browser
- Paste an authentication token
- Personal access tokensを発行しておく
- scopeは 'repo', 'read:org', 'workflow' を選択する
The minimum required scopes are 'repo', 'read:org', 'workflow'.
- scopeは 'repo', 'read:org', 'workflow' を選択する
-
gh auth login
を実行し、ダイアログに従って選択/入力する❯ 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? Paste an authentication token Tip: you can generate a Personal Access Token here https://github.com/settings/tokens The minimum required scopes are 'repo', 'read:org', 'workflow'. ? Paste your authentication token: **************************************** - gh config set -h github.com git_protocol https ✓ Configured git protocol ✓ Logged in as yocajii
3. ラベルをコピーする
- コピー先のローカルリポジトリがあるディレクトリに移動する
-
gh label clone <アカウント名/リポジトリ名>
~/work/sawara ❯ gh label clone yocajii/hamattimer ✓ Cloned 15 labels from yocajii/hamattimer to yocajii/sawara
えっ?これで本当にコピーできたの?と半信半疑でGitHubのリポジトリを確認したところ、ばっちりラベルが増えていました。