删除 create_repo.py
This commit is contained in:
149
create_repo.py
149
create_repo.py
@@ -1,149 +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/
|
|
||||||
create_repo.py
|
|
||||||
"""
|
|
||||||
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()
|
|
||||||
Reference in New Issue
Block a user