import os
import requests
from git import Repo

# =========================
# CONFIG (EDIT THIS ONLY)
# =========================
USERNAME = "RskPowerPz"
REPO_NAME = "kittygram"
LOCAL_PATH = "/root/kittygram"

# Token must be set in environment
GITHUB_TOKEN = "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"

# =========================
# CREATE GITHUB REPO
# =========================
def create_repo():
    url = "https://api.github.com/user/repos"

    headers = {
        "Authorization": f"token {GITHUB_TOKEN}",
        "Accept": "application/vnd.github+json"
    }

    data = {
        "name": REPO_NAME,
        "private": False,
        "auto_init": False
    }

    r = requests.post(url, json=data, headers=headers)

    if r.status_code == 201:
        print("[+] GitHub repo created")
    elif r.status_code == 422:
        print("[!] Repo already exists (continuing...)")
    else:
        print("[-] Error:", r.text)
        exit()

# =========================
# PUSH CODE
# =========================
def push_code():
    repo = Repo.init(LOCAL_PATH)

    origin_url = f"https://{GITHUB_TOKEN}@github.com/{USERNAME}/{REPO_NAME}.git"

    # remote reset
    try:
        repo.delete_remote("origin")
    except:
        pass

    repo.create_remote("origin", origin_url)

    repo.git.add(all=True)

    try:
        repo.index.commit("🔥 hardcore auto deploy commit")
    except:
        print("[!] Nothing to commit (already clean)")

    repo.git.branch("-M", "main")
    repo.git.push("-u", "origin", "main")

    print("[+] PUSH SUCCESS 🚀")

# =========================
# RUNNER
# =========================
if __name__ == "__main__":
    if not GITHUB_TOKEN:
        print("❌ ERROR: GITHUB_TOKEN not set")
        print("👉 Run: export GITHUB_TOKEN='your_token_here'")
        exit()

    create_repo()
    push_code()
