0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リポジトリのprivate/publicをgithub CLIで効率的に切り替える

Last updated at Posted at 2024-12-01

githubが整理されてなさすぎる

自分は前職はまったくITとは無縁の職種からエンジニアに転職したため、一度G's ACADEMYというスクールに通ってからこの業界に飛び込んだのですが、独学時代も含めそれまでに作成したリポジトリがpublicで放置された状態になっていました。

今回整理する機会があり、まずはリポジトリをpublicからprivateにするところからだな、と思い効率的に切り替える方法を探していました。

方法は3つある

リポジトリの内容を切り替える方法はいくつかあります.

  1. GitHub GUIでリポジトリをPrivateに変更する
  2. GitHub CLIを使用する
  3. GitHub APIを使用する

今回は最も効率的であるGitHub CLIを使用するを採用します。

GitHub CLIを使用する方法

1. GitHub CLIをインストールする(未インストールの場合)

コマンドライン(macOSならターミナル)を開いてghコマンドが使用できない場合は以下コマンドでインストールします。

# macOS (Homebrew)
brew install gh

# Ubuntu/Debian
sudo apt install gh

# Windows (Scoop)
scoop install gh

2. インストールしたらGitHub CLIにログイン

以下コマンドでログインします。

gh auth login

ログイン時、色々質問されますが、ご自身の設定に合わせて選択していただければ問題ありません。
(自分はSSHキーを選択してブラウザログインしました)

補足

SSHキーを選択した場合は以下手順でログインできます。

1. SSHキーのアップロードについて
GitHub CLIがあなたのローカルマシンにあるSSHキーをGitHubアカウントにアップロードしようとしています。id_rsa.pub はSSH公開鍵です。GitHubに登録することで、安全にリポジトリにアクセスできます。

質問: Title for your SSH key
何を入力するか: このSSHキーを区別しやすい名前を入力してください。

My MacBook SSH Key for GitHub

これは、GitHubの「SSH and GPG keys」設定ページで、このキーを識別するためのラベルです。
好きな名前で問題ありません。

もしSSHキーがまだ作成されていない場合、以下のコマンドで新しいSSHキーを作成できます

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

作成された公開鍵(~/.ssh/id_rsa.pub)をGitHub CLIが自動的に利用します。

3. GitHub CLIでリポジトリをPrivateに一括変更

以下のコマンドで一括変更可能です。
XXXXXXの部分はご自身のユーザー名に変更してください

gh repo list XXXXXX --limit 1000 --json name,visibility | jq -r '.[] | select(.visibility=="PUBLIC") | .name' | while read repo; do
    echo "Processing $repo..."
    gh repo edit XXXXXX/$repo --visibility private --accept-visibility-change-consequences
    echo "$repo has been made private"
done

※jqコマンドが使用できない場合は以下のコマンドでインストールしてください(jqはJSONデータを操作するツールです)

# macOS
brew install jq

# Ubuntu/Debian
sudo apt install jq

実行後は以下のコマンドで変更状態を確認できます。

gh repo list XXXXXX --limit 1000 --json name,visibility

補足

  • 特定のリポジトリのみpublcにしたい場合
gh repo edit YOUR_USERNAME/REPO_NAME --visibility public --accept-visibility-change-consequences
  • 特定のリポジトリのみprivateにしたい場合
gh repo edit YOUR_USERNAME/REPO_NAME --visibility private --accept-visibility-change-consequences

以上、ぜひリポジトリの整理の際の参考になれば幸いです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?