forked from phoenix/litellm-mirror
54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import os
|
|
import requests
|
|
from datetime import datetime
|
|
|
|
# GitHub API endpoints
|
|
GITHUB_API_URL = "https://api.github.com"
|
|
REPO_OWNER = "BerriAI"
|
|
REPO_NAME = "litellm"
|
|
|
|
# GitHub personal access token (required for uploading release assets)
|
|
GITHUB_ACCESS_TOKEN = os.environ.get("GITHUB_ACCESS_TOKEN")
|
|
|
|
# Headers for GitHub API requests
|
|
headers = {
|
|
"Accept": "application/vnd.github+json",
|
|
"Authorization": f"Bearer {GITHUB_ACCESS_TOKEN}",
|
|
"X-GitHub-Api-Version": "2022-11-28",
|
|
}
|
|
|
|
# Get the latest release
|
|
releases_url = f"{GITHUB_API_URL}/repos/{REPO_OWNER}/{REPO_NAME}/releases/latest"
|
|
response = requests.get(releases_url, headers=headers)
|
|
latest_release = response.json()
|
|
print("Latest release:", latest_release)
|
|
|
|
# Upload an asset to the latest release
|
|
upload_url = latest_release["upload_url"].split("{?")[0]
|
|
asset_name = "results_stats.csv"
|
|
asset_path = os.path.join(os.getcwd(), asset_name)
|
|
print("upload_url:", upload_url)
|
|
|
|
with open(asset_path, "rb") as asset_file:
|
|
asset_data = asset_file.read()
|
|
|
|
upload_payload = {
|
|
"name": asset_name,
|
|
"label": "Load test results",
|
|
"created_at": datetime.utcnow().isoformat() + "Z",
|
|
}
|
|
|
|
upload_headers = headers.copy()
|
|
upload_headers["Content-Type"] = "application/octet-stream"
|
|
|
|
upload_response = requests.post(
|
|
upload_url,
|
|
headers=upload_headers,
|
|
data=asset_data,
|
|
params=upload_payload,
|
|
)
|
|
|
|
if upload_response.status_code == 201:
|
|
print(f"Asset '{asset_name}' uploaded successfully to the latest release.")
|
|
else:
|
|
print(f"Failed to upload asset. Response: {upload_response.text}")
|