Github项目按版本下载脚本

脚本依赖软件:yum install -y curl wget jq

脚本使用:

例如项目:jgraph/drawio-desktop

bash github_download.sh jgraph drawio-desktop

默认下载项目最近10个版本

bash github_download.sh jgraph drawio-desktop 5

指定下载项目最近5个版本

#!/bin/bash
number=10
#检测参数数量是否正确
if [ "$#" -lt 2 ]; then
    echo "Usage: \$0 <user> <repo>"
    exit 1
elif [ "$#" -eq 3 ]; then
    number=$3
fi
user=$1
repo=$2

# 从GitHub API获取版本号信息,并只保留最新的10个版本
curl -s https://api.github.com/repos/$user/$repo/releases | jq -r '.[].tag_name' | head -n $number | while read -r version
do
    # 创建版本号对应的文件夹,包括用户和仓库的层级结构
    mkdir -p $user/$repo/$version
    # 进入版本号文件夹
    cd $user/$repo/$version
    # 从GitHub API获取该版本的发布信息
    curl -s https://api.github.com/repos/$user/$repo/releases/tags/$version | jq -r '.assets[].browser_download_url' > download_url.txt
    cat download_url.txt | while read -r url
    do
        wget $url || echo $url >> failed_downloads.txt # 下载文件
    done
    #重新下载失败文件
    cat failed_downloads.txt | while read url; do wget $url; done
    
    # 下载README.md文件
    #readme_url="https://raw.githubusercontent.com/pinpoint-apm/pinpoint-docker/${version}/README.md"

    # 返回到脚本开始执行时的目录
    cd - > /dev/null
done

下载项目[Source code]源码包

bash github_resource_url.sh jgraph drawio-desktop 5

指定下载最近5个版本

#!/bin/bash
number=10
# 检查参数数量
if [ "$#" -lt 2 ]; then
    echo "Usage: \$0 <user> <repo>"
    exit 1
elif [ "$#" -eq 3 ]; then
    number=$3
fi

user=$1
repo=$2

# 从GitHub API获取版本号信息,并只保留最新的10个版本
curl -s https://api.github.com/repos/$user/$repo/tags | jq -r '.[].name' | head -n $number | while read -r version
do
    # 创建版本号对应的文件夹,包括用户和仓库的层级结构
    mkdir -p $user/$repo/$version
    # 进入版本号文件夹
    cd $user/$repo/$version
    # 下载.tar.gz资源,注意链接的格式
    resource_url_tar="https://github.com/$user/$repo/archive/refs/tags/${version}.tar.gz"
    wget $resource_url_tar -O "[Source code] ${version}.tar.gz" || echo $resource_url_tar >> failed_downloads.txt
    
    # 下载.zip资源
    resource_url_zip="https://github.com/$user/$repo/archive/refs/tags/${version}.zip"
    wget $resource_url_zip -O "[Source code] ${version}.zip" || echo $resource_url_zip >> failed_downloads.txt
    # 下载README.md文件
    #readme_url="https://raw.githubusercontent.com/$user/$repo/${version}/README.md"
    #wget -O README.md $readme_url || echo $readme_url >> ../failed_downloads.txt
    #重新下载失败文件
    cat failed_downloads.txt | while read url; do wget $url; done

    # 返回到脚本开始执行时的目录
    cd - > /dev/null
done

版权声明:
作者:WaterBear
链接:https://l-t.top/2802.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录