MrGeneration revised this gist 4 months ago. Go to revision
                
                    2 files changed, 74 insertions
github_replace_old_url_with_new.rb(file created)
| @@ -0,0 +1,37 @@ | |||
| 1 | + | # URLs below can contain project / group URLs, but have to fit as this script | |
| 2 | + | # does a very simple search and replace. | |
| 3 | + | # Backup first | |
| 4 | + | old_github_url = 'https://git.my-old.domain/' | |
| 5 | + | new_github_url = 'https://git.my-new.domain/' | |
| 6 | + | ||
| 7 | + | Ticket.where("preferences LIKE '%github%'").find_in_batches.each do |b| | |
| 8 | + | b.each do |t| | |
| 9 | + | next if t.preferences[:github][:issue_links].count.zero? | |
| 10 | + | ||
| 11 | + | # Evaluate array for current data | |
| 12 | + | no_issue_links = t.preferences[:github][:issue_links].count | |
| 13 | + | issue_link_hits = 0 | |
| 14 | + | ||
| 15 | + | t.preferences[:github][:issue_links].each do |p| | |
| 16 | + | next unless p.include? new_github_url | |
| 17 | + | ||
| 18 | + | issue_link_hits += 1 | |
| 19 | + | puts "issue_link_hits #{issue_link_hits} / #{no_issue_links}" | |
| 20 | + | end | |
| 21 | + | ||
| 22 | + | next if issue_link_hits == no_issue_links | |
| 23 | + | ||
| 24 | + | # Move fast, break everything | |
| 25 | + | puts "Touching Ticket# #{t.number} ..." | |
| 26 | + | t.preferences[:github][:issue_links].each do |p| | |
| 27 | + | next unless p.include? old_github_url | |
| 28 | + | ||
| 29 | + | old_url = p | |
| 30 | + | new_url = p.sub!(old_github_url, new_github_url) | |
| 31 | + | ||
| 32 | + | puts "... Changed #{old_url} to #{new_url}" | |
| 33 | + | end | |
| 34 | + | ||
| 35 | + | t.save! | |
| 36 | + | end | |
| 37 | + | end; nil | |
gitlab_replace_old_url_with_new.rb(file created)
| @@ -0,0 +1,37 @@ | |||
| 1 | + | # URLs below can contain project / group URLs, but have to fit as this script | |
| 2 | + | # does a very simple search and replace. | |
| 3 | + | # Backup first | |
| 4 | + | old_gitlab_url = 'https://git.my-old.domain/' | |
| 5 | + | new_gitlab_url = 'https://git.my-new.domain/' | |
| 6 | + | ||
| 7 | + | Ticket.where("preferences LIKE '%gitlab%'").find_in_batches.each do |b| | |
| 8 | + | b.each do |t| | |
| 9 | + | next if t.preferences[:gitlab][:issue_links].count.zero? | |
| 10 | + | ||
| 11 | + | # Evaluate array for current data | |
| 12 | + | no_issue_links = t.preferences[:gitlab][:issue_links].count | |
| 13 | + | issue_link_hits = 0 | |
| 14 | + | ||
| 15 | + | t.preferences[:gitlab][:issue_links].each do |p| | |
| 16 | + | next unless p.include? new_gitlab_url | |
| 17 | + | ||
| 18 | + | issue_link_hits += 1 | |
| 19 | + | puts "issue_link_hits #{issue_link_hits} / #{no_issue_links}" | |
| 20 | + | end | |
| 21 | + | ||
| 22 | + | next if issue_link_hits == no_issue_links | |
| 23 | + | ||
| 24 | + | # Move fast, break everything | |
| 25 | + | puts "Touching Ticket# #{t.number} ..." | |
| 26 | + | t.preferences[:gitlab][:issue_links].each do |p| | |
| 27 | + | next unless p.include? old_gitlab_url | |
| 28 | + | ||
| 29 | + | old_url = p | |
| 30 | + | new_url = p.sub!(old_gitlab_url, new_gitlab_url) | |
| 31 | + | ||
| 32 | + | puts "... Changed #{old_url} to #{new_url}" | |
| 33 | + | end | |
| 34 | + | ||
| 35 | + | t.save! | |
| 36 | + | end | |
| 37 | + | end; nil | |