Netlify CLIを使って不要なサイトを一括削除する
大量のNetlifyサイトが溜まってきたので、CLIを使って一括削除した際の手順をまとめます。 背景 開発やテストで作成したNetlifyサイトが41個まで増えていました。現在使用しているサイトは数個だけだったため、古いサイトをまとめて削除することにしました。 環境 macOS Node.js netlify-cli v23.15.1 手順 1. Netlify CLIのインストール npm install -g netlify-cli 2. ログイン netlify login ブラウザが開き、Netlifyの認証画面が表示されます。認証を許可するとCLIにトークンが保存されます。 3. サイト一覧の取得 netlify sites:list JSON形式で取得する場合は --json オプションを付けます。 netlify sites:list --json Python等で整形して確認すると見やすくなります。 netlify sites:list --json | python3 -c " import json, sys sites = json.load(sys.stdin) print(f'合計: {len(sites)} サイト\n') for i, s in enumerate(sites): name = s.get('name', 'N/A') url = s.get('url', 'N/A') updated = s.get('updated_at', 'N/A')[:10] site_id = s.get('id', 'N/A') print(f'{i+1:3d}. {name}') print(f' URL: {url}') print(f' 更新日: {updated} ID: {site_id}') " 4. サイトの削除 個別に削除する場合: netlify sites:delete --force <site-id> --force を付けないと確認プロンプトが表示されます。 5. シェルスクリプトで一括削除 削除対象のサイトIDと名前を配列に入れて、ループで一括削除できます。 #!/bin/bash sites=( "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:site-name-1" "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy:site-name-2" "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz:site-name-3" ) deleted=0 failed=0 for entry in "${sites[@]}"; do id="${entry%%:*}" name="${entry##*:}" echo -n "削除中: $name ... " if netlify sites:delete --force "$id" 2>&1; then echo "OK" ((deleted++)) else echo "FAILED" ((failed++)) fi done echo "" echo "=== 完了 ===" echo "削除成功: $deleted" echo "失敗: $failed" APIを直接使う方法 CLIを使わずにREST APIを直接呼ぶことも可能です。 ...

