Update app.py
Browse files
app.py
CHANGED
@@ -10,10 +10,10 @@ def create_github_release(
|
|
10 |
release_tag: str,
|
11 |
release_name: str,
|
12 |
release_description: str,
|
13 |
-
|
14 |
):
|
15 |
-
file_name = os.path.basename(file_path)
|
16 |
try:
|
|
|
17 |
release_response = requests.post(
|
18 |
f"https://api.github.com/repos/{owner}/{repo}/releases",
|
19 |
headers={
|
@@ -28,25 +28,36 @@ def create_github_release(
|
|
28 |
"prerelease": False,
|
29 |
},
|
30 |
)
|
|
|
31 |
if release_response.status_code != 201:
|
32 |
return f"Failed to create release: {release_response.status_code}, {release_response.json()}"
|
|
|
33 |
# 获取上传 URL
|
34 |
release = release_response.json()
|
35 |
upload_url = release["upload_url"].split("{")[0]
|
36 |
-
with open(file_path, "rb") as binary_file:
|
37 |
-
upload_response = requests.post(
|
38 |
-
f"{upload_url}?name={file_name}",
|
39 |
-
headers={
|
40 |
-
"Authorization": f"token {token}",
|
41 |
-
"Content-Type": "application/octet-stream",
|
42 |
-
},
|
43 |
-
data=binary_file,
|
44 |
-
)
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
|
51 |
except Exception as e:
|
52 |
return f"Release failed: {e}"
|
@@ -86,7 +97,7 @@ if __name__ == "__main__":
|
|
86 |
placeholder="Release with binary file with source code.",
|
87 |
show_copy_button=True,
|
88 |
),
|
89 |
-
gr.File(label="Binary File"),
|
90 |
],
|
91 |
outputs=gr.TextArea(label="Status", show_copy_button=True),
|
92 |
title="GitHub Release Creator",
|
|
|
10 |
release_tag: str,
|
11 |
release_name: str,
|
12 |
release_description: str,
|
13 |
+
files: list,
|
14 |
):
|
|
|
15 |
try:
|
16 |
+
# 创建 Release
|
17 |
release_response = requests.post(
|
18 |
f"https://api.github.com/repos/{owner}/{repo}/releases",
|
19 |
headers={
|
|
|
28 |
"prerelease": False,
|
29 |
},
|
30 |
)
|
31 |
+
|
32 |
if release_response.status_code != 201:
|
33 |
return f"Failed to create release: {release_response.status_code}, {release_response.json()}"
|
34 |
+
|
35 |
# 获取上传 URL
|
36 |
release = release_response.json()
|
37 |
upload_url = release["upload_url"].split("{")[0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
|
39 |
+
# 上传多个二进制文件
|
40 |
+
results = []
|
41 |
+
for file_path in files:
|
42 |
+
file_name = os.path.basename(file_path)
|
43 |
+
with open(file_path, "rb") as binary_file:
|
44 |
+
upload_response = requests.post(
|
45 |
+
f"{upload_url}?name={file_name}",
|
46 |
+
headers={
|
47 |
+
"Authorization": f"token {token}",
|
48 |
+
"Content-Type": "application/octet-stream",
|
49 |
+
},
|
50 |
+
data=binary_file,
|
51 |
+
)
|
52 |
+
|
53 |
+
if upload_response.status_code == 201:
|
54 |
+
results.append(f"Binary file '{file_name}' uploaded successfully!")
|
55 |
+
else:
|
56 |
+
results.append(
|
57 |
+
f"Failed to upload binary file '{file_name}': {upload_response.status_code}, {upload_response.json()}"
|
58 |
+
)
|
59 |
+
|
60 |
+
return "\n".join(results)
|
61 |
|
62 |
except Exception as e:
|
63 |
return f"Release failed: {e}"
|
|
|
97 |
placeholder="Release with binary file with source code.",
|
98 |
show_copy_button=True,
|
99 |
),
|
100 |
+
gr.File(label="Binary File", file_count="multiple"),
|
101 |
],
|
102 |
outputs=gr.TextArea(label="Status", show_copy_button=True),
|
103 |
title="GitHub Release Creator",
|