From 6b86e6cfa9aec0e34d4fcd2f78d69bd78c8a7b82 Mon Sep 17 00:00:00 2001 From: aibangjuxin Date: Thu, 13 Jun 2024 07:34:01 +0800 Subject: [PATCH] Update upload.md --- upload.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 upload.md diff --git a/upload.md b/upload.md new file mode 100644 index 0000000..6192092 --- /dev/null +++ b/upload.md @@ -0,0 +1,67 @@ +要自动化上传Zip文件到GitHub Release assets,你可以编写一个shell脚本来完成这个过程。以下是一个基本的脚本示例,它使用`wget`来下载Zip文件,然后使用GitHub API来上传这个文件到指定的Release的assets中。 + +首先,你需要准备以下信息: +- GitHub个人访问令牌(Personal Access Token,简称PAT) +- 仓库的名称和所有者 +- 要上传的Release的tag名 +- 你想要上传的Zip文件的URL + +然后,你可以创建一个shell脚本,如下所示: + +```bash +#!/bin/bash + +# 设置变量 +GITHUB_TOKEN='你的GitHub个人访问令牌' +REPO_OWNER='仓库的所有者' +REPOSITORY='仓库的名称' +TAG_NAME='要上传的Release的tag名' +ZIP_URL='Zip文件的URL' +ZIP_FILENAME='下载的Zip文件名,例如:my-app-1.0.0.zip' + +# 使用wget下载Zip文件 +wget $ZIP_URL -O $ZIP_FILENAME + +# 检查wget命令是否成功执行 +if [ $? -ne 0 ]; then + echo "下载Zip文件失败" + exit 1 +fi + +# 获取Release的ID +RELEASE_ID=$(curl -H "Authorization: token $GITHUB_TOKEN" \ + "https://api.github.com/repos/$REPO_OWNER/$REPOSITORY/releases/tags/$TAG_NAME" | \ + grep -Po '"id": \K\d+') + +# 上传文件到Release assets +curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ + -H "Content-Type: application/zip" \ + --data-binary "@$ZIP_FILENAME" \ + "https://uploads.github.com/repos/$REPO_OWNER/$REPOSITORY/releases/$RELEASE_ID/assets?name=$ZIP_FILENAME" + +# 检查curl命令是否成功执行 +if [ $? -eq 0 ]; then + echo "上传成功" +else + echo "上传失败" +fi + +# 清理下载的文件 +rm $ZIP_FILENAME +``` + +请将上述脚本中的占位符(例如`你的GitHub个人访问令牌`)替换为实际的值。确保你的GitHub个人访问令牌具有足够的权限来创建Release和上传assets。 + +将这个脚本保存为`.sh`文件,并在具有执行权限的情况下运行它。你可以使用以下命令来给予脚本执行权限: + +```bash +chmod +x your-script-name.sh +``` + +然后运行脚本: + +```bash +./your-script-name.sh +``` + +请注意,这个脚本使用了GitHub API的Upload a Release Asset端点,并且假定你已经有了一个存在的Release。如果Release不存在,你需要先创建一个Release,然后才能上传assets。此外,确保你的`wget`和`curl`命令在你的系统上可用。 \ No newline at end of file