From c63d0ea70b575e9b2660a6c558c2aba5ae06a65f Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 12 Dec 2025 06:41:24 +0000 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20create=5Frepo.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- create_repo.py | 148 ------------------------------------------------- 1 file changed, 148 deletions(-) delete mode 100644 create_repo.py diff --git a/create_repo.py b/create_repo.py deleted file mode 100644 index f4b8658..0000000 --- a/create_repo.py +++ /dev/null @@ -1,148 +0,0 @@ -import requests -import json -import subprocess -import os - -# Configuration -API_URL = "https://git.aitosuv.com/api/v1/user/repos" -AUTH = ('admin', 'lsy123123') -REPO_DATA = { - "name": "geminiWX", - "description": "微信小程序项目", - "private": False, - "auto_init": False -} - -def run_command(command): - """Run a shell command and return the output.""" - print(f"Running: {command}") - try: - result = subprocess.run( - command, - check=True, - shell=True, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - text=True, - encoding='utf-8', - errors='replace' - ) - if result.stdout: - print(result.stdout.strip()) - return result.stdout.strip() - except subprocess.CalledProcessError as e: - print(f"Error running command: {command}") - print(e.stderr) - return None - -def create_gitignore(): - """Create .gitignore if it doesn't exist.""" - if not os.path.exists(".gitignore"): - content = """ -.venv/ -__pycache__/ -*.pyc -.trae/ -.vscode/ -.idea/ -*.log -*.mp4 -.venv/ -.node_modules/ -""" - with open(".gitignore", "w") as f: - f.write(content.strip()) - print("Created .gitignore") - else: - print(".gitignore already exists") - -def main(): - clone_url = None - - # Initialize session and disable proxy - session = requests.Session() - session.trust_env = False - - # 1. Create Repository via API - try: - response = session.post(API_URL, auth=AUTH, json=REPO_DATA) - if response.status_code == 201: - print("Repository created successfully") - clone_url = response.json()['clone_url'] - elif response.status_code == 422 or response.status_code == 409: # Already exists - print("Repository already exists") - # Fetch existing repo details - user = AUTH[0] - repo_name = REPO_DATA["name"] - get_url = f"https://git.aitosuv.com/api/v1/repos/{user}/{repo_name}" - resp_get = session.get(get_url, auth=AUTH) - if resp_get.status_code == 200: - clone_url = resp_get.json()['clone_url'] - else: - print(f"Could not fetch existing repository details. Status: {resp_get.status_code}") - else: - print(f"Failed to create repository: {response.status_code}") - print(response.text) - return - except Exception as e: - print(f"Error: {e}") - return - - if not clone_url: - print("Could not determine clone URL. Exiting.") - return - - # Embed credentials into the URL for automatic authentication - # Assuming clone_url format: https://git.aitosuv.com/admin/geminiWX.git - # We want: https://admin:lsy123123@git.aitosuv.com/admin/geminiWX.git - if "://" in clone_url: - protocol, rest = clone_url.split("://", 1) - auth_url = f"{protocol}://{AUTH[0]}:{AUTH[1]}@{rest}" - else: - auth_url = clone_url # Fallback if format is unexpected - - print(f"Target Remote URL: {clone_url}") - - # 2. Local Git Operations - if not os.path.exists(".git"): - print("Initializing git repository...") - run_command("git init") - - # Configure git user for this repository - print("Configuring git user...") - run_command(f'git config user.email "{AUTH[0]}@aitosuv.com"') - run_command(f'git config user.name "{AUTH[0]}"') - - create_gitignore() - - print("Adding files...") - run_command("git add .") - - print("Committing changes...") - run_command('git commit -m "Initial commit"') - - # Check and configure remote - remotes = run_command("git remote -v") - if remotes and "origin" in remotes: - print("Updating remote 'origin'...") - run_command(f"git remote set-url origin {auth_url}") - else: - print("Adding remote 'origin'...") - run_command(f"git remote add origin {auth_url}") - - # Push to remote - print("Pushing to remote...") - # Try pushing to master first, then main if that fails (or vice versa depending on default branch) - # Usually 'master' is default for older git, 'main' for newer. - # We can try checking current branch name. - current_branch = run_command("git rev-parse --abbrev-ref HEAD") - if current_branch: - if run_command(f"git push -u origin {current_branch} -f") is None: - print("Push failed.") - else: - # Fallback if we couldn't get branch name - if run_command("git push -u origin master -f") is None: - run_command("git push -u origin main -f") - -if __name__ == "__main__": - main()