BitBucketで大量のGitリポジトリの所有者変更をした際に、手元にcloneしてあるリポジトリのURLも同時に書き換えるためのスクリプトです。git remote set-url
を該当するリポジトリで順番に実行して回ります。(安全のため、そのまま実行してもコマンドを出力するだけなので、実際に実行する場合は書き換えてください。
old_owner = "foo"
new_owner = "bar"
Dir.entries(".").sort.each do |d|
next unless File.directory?(d+"/.git")
Dir.chdir(d)
puts Dir.pwd
m = `git remote -v | grep fetch | grep #{old_owner}`
if m.empty?
Dir.chdir("..")
next
end
new_path = m.split(/[\t ]+/)[1].sub(src,new_owner)
cmd = "git remote set-url origin "+new_path
puts cmd
Dir.chdir("..")
end