USER="{ユーザー名}"
repos=$(gh repo list $USER --source --limit 1000 --json name --jq '.[].name')
count=0
batch=()
for repo in $repos; do
batch+=("$repo")
count=$((count + 1))
if [ $count -eq 10 ]; then
echo "==== 次の 10 件 ===="
printf '%s\n' "${batch[@]}"
echo "=================="
read -p "この 10 件を Private に変更しますか? (y/n) " yn
if [ "$yn" = "y" ]; then
for r in "${batch[@]}"; do
gh repo edit "$USER/$r" \
--visibility private \
--accept-visibility-change-consequences
done
echo " -> 10 件変更しました。"
else
echo " -> スキップしました。"
fi
batch=()
count=0
fi
done
if [ ${#batch[@]} -gt 0 ]; then
echo "==== 残りのリポジトリ ===="
printf '%s\n' "${batch[@]}"
echo "=========================="
read -p "これらを Private に変更しますか? (y/n) " yn
if [ "$yn" = "y" ]; then
for r in "${batch[@]}"; do
gh repo edit "$USER/$r" \
--visibility private \
--accept-visibility-change-consequences
done
echo " -> 残りも変更しました。"
else
echo " -> スキップしました。"
fi
fi