#!/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."