当前位置: 首页> 汽车> 报价 > 建立个人网页_python基础教程电子版_百度seo排名原理_b2b b2c c2c o2o区别

建立个人网页_python基础教程电子版_百度seo排名原理_b2b b2c c2c o2o区别

时间:2025/7/25 23:08:55来源:https://blog.csdn.net/FangX_u/article/details/144845336 浏览次数: 0次
建立个人网页_python基础教程电子版_百度seo排名原理_b2b b2c c2c o2o区别

背景

老gitlab 上面项目比较多, 新老GITLab 版本相差比较大,不能通过配置一键更新。

方案一:升级老gitlab代价大

方案二:手动导入导出比较耗时

方案三:脚本方式导入导出

脚本方式

1.导出项目

说明:GITLAB_TOKEN/GITLAB_URL需要替换为实际的老gitlab 地址

导出脚本:export-gitlab.sh

#!/bin/bashfunction export(){
echo "導入中"    
# 设置 GitLab 令牌和 URL
GITLAB_TOKEN="admin accessToken"
GITLAB_URL="oldGitlabUrl"
# 获取项目列表
#projects=$(curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" "$GITLAB_URL/api/v4/projects?simple=true" | jq -r '.[].id')
GROUP_ID=`curl -s --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "$GITLAB_URL/api/v4/groups/$1" | jq '.id'`
projects=$(curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" "$GITLAB_URL/api/v4/groups/$GROUP_ID/projects?simple=true&per_page=1000" | jq -r '.[].id')
echo $projects
# 导出项目
for project in $projects; doecho "开始导出$project"curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "$GITLAB_URL/api/v4/projects/$project/export"sleep 20echo "开始下载$projects"curl --header "PRIVATE-TOKEN: $GITLAB_TOKEN" --remote-header-name --remote-name "$GITLAB_URL/api/v4/projects/$project/export/download"
done
}if [ $# -lt 1 ]; thenecho "请输入需要导出的namespace"exit 1
fi# 根据输入参数执行不同的操作
case "$1" in*)echo "导出的namespace--$1"export $1
esac

执行命令:其中 $groupName 为需要导出的groupName

./export-gitlab.sh $groupName

2.导入项目

导入脚本:import-gitlab.sh

说明:GITLAB_TOKEN/GITLAB_URL需要替换为实际的新的gitlab 地址

#!/bin/bash
# 设置 GitLab 令牌和 URL
function import(){
# 设置 GitLab 令牌和 URL
GITLAB_TOKEN="access Token"
GITLAB_URL="newGitLanUrl"
for file in *.tar.gz; doPROJECT_NAME=`ls $file | grep -i gz | tr '_' '\n' | grep -v '^$' | head -4 | tail -1`echo "开始导入"$PROJECT_NAMEcurl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" --form "path=$PROJECT_NAME" --form "namespace=$1" --form "file=@$file" "$GITLAB_URL/api/v4/projects/import"
done
}if [ $# -lt 1 ]; thenecho "请输入需要导入的groupName"exit 1
fi# 根据输入参数执行不同的操作
case "$1" in*)echo "导入的groupName--$1"import $1;;
esac

执行命令:其中 $groupName 为需要导入的groupName

./import-gitlab.sh $groupName

3.本地批量切换gitlab

切换gitlab地址脚本:update_gitlab_url.sh

#!/bin/bash# 确保提供了组名和开始日期
if [ "$#" -ne 1 ]; thenecho "Usage: $0 <project_dir>"exit 1
fi# 定义旧的和新的 GitLab 地址
OLD_URL="OLD_URL"
NEW_URL="NEW_URL"# 定义包含多个项目的目录路径
BASE_DIR=$1# 遍历所有项目文件夹
for project_dir in "$BASE_DIR"/*; doif [ -d "$project_dir/.git" ]; thencd "$project_dir" || continue# 获取当前的远程 URLcurrent_url=$(git remote get-url origin)# 判断是否需要替换if [[ "$current_url" == "$OLD_URL"* ]]; then# 更新远程 URLnew_url="${current_url/$OLD_URL/$NEW_URL}"git remote set-url origin "$new_url"echo "Updated $project_dir: $current_url -> $new_url"elseecho "No update needed for $project_dir"fifi
done

执行命令:其中 $project_dir 为需要导入的项目的绝对地址

./update_gitlab_url.sh $project_dir

关键字:建立个人网页_python基础教程电子版_百度seo排名原理_b2b b2c c2c o2o区别

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: