45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
#!/usr/bin/env ruby
|
||
require 'net/http'
|
||
require 'json'
|
||
require 'uri'
|
||
|
||
# Configuration
|
||
GITEA_URL = "https://git.staging.jamkazam.com/api/v1"
|
||
GITEA_TOKEN = "6798c2d2b1beed9a8c33c738f7a521548e40bcc5"
|
||
GITEA_OWNER = "seth"
|
||
|
||
# Default repos if none specified
|
||
DEFAULT_REPOS = ["jam-cloud", "video-iac"]
|
||
|
||
repos_to_delete = ARGV.empty? ? DEFAULT_REPOS : ARGV
|
||
|
||
def delete_repo(repo_name)
|
||
puts "🗑️ Deleting repository: #{repo_name}..."
|
||
|
||
uri = URI.parse("#{GITEA_URL}/repos/#{GITEA_OWNER}/#{repo_name}")
|
||
header = {
|
||
'Authorization' => "token #{GITEA_TOKEN}"
|
||
}
|
||
|
||
http = Net::HTTP.new(uri.host, uri.port)
|
||
http.use_ssl = true
|
||
|
||
request = Net::HTTP::Delete.new(uri.request_uri, header)
|
||
response = http.request(request)
|
||
|
||
if response.code == "204"
|
||
puts "✅ Successfully deleted #{repo_name}."
|
||
elsif response.code == "404"
|
||
puts "ℹ️ Repository #{repo_name} not found. Skipping."
|
||
else
|
||
puts "❌ Failed to delete #{repo_name}: #{response.code}"
|
||
puts response.body
|
||
end
|
||
end
|
||
|
||
repos_to_delete.each do |repo|
|
||
delete_repo(repo)
|
||
end
|
||
|
||
puts "\n✨ Cleanup complete."
|