一、需求来源
我个人之所以有这个需求,是因为我想定期备份我Git上的所有私人项目
二、前期必备
获取私人访问令牌
要获取GitLab账号的私有访问令牌,可以按照以下步骤进行操作:
1.打开GitLab网站并登录到你的账号。
2. 点击右上角的用户头像,然后选择"Settings"(设置)。
3. 在侧边栏中选择"Access Tokens"(访问令牌)。
4. 在"Name"(名称)字段中,为访问令牌输入一个描述性的名称,以便你能够识别它的用途。
5. 选择所需的访问权限(api选项通常足够获取仓库信息)。
6. 点击"Create Personal Access Token"(创建个人访问令牌)按钮。
7. GitLab将生成一个访问令牌,并在屏幕上显示给你。请注意,该令牌仅在生成时可见,无法在以后查看。确保复制令牌并妥善保存。
生成的访问令牌是私有且具有高度权限的凭据,请妥善保管,不要泄露给他人。使用访问令牌时,应遵循最佳安全实践。
检查 curl 工具:
1.打开命令提示符(在 Windows 上按下 Win + R,输入 “cmd”,然后按 Enter)或终端窗口(在 macOS 或 Linux 上)。
2.输入 “curl --version”(不带引号)并按 Enter。
3.如果您看到 curl 的版本信息,表示 curl 工具已安装并可用。
4.否则,您将收到一条错误消息或提示没有找到 curl 命令。
对于 curl 工具,您可以访问 https://curl.se/windows/ 下载适用于 Windows 的 curl 安装程序,并按照安装向导进行安装。
检查 jq 工具:
- 打开命令提示符或终端窗口。
- 输入 “jq --version”(不带引号)并按 Enter。
- 如果您看到 jq 的版本信息,表示 jq 工具已安装并可用。
- 否则,您将收到一条错误消息或提示没有找到 jq 命令。
对于 jq 工具,您可以访问 https://stedolan.github.io/jq/download/ 下载适用于 Windows 的 jq 可执行文件,并将其放置在系统路径中,以便在命令提示符中直接调用。注意exe的名称,与后续脚本要保持一致。【如不能调用,请重启电脑】
三、Batch脚本
@echo off
set "private_token=<Access Tokens>"
set "gitlab_url=http://127.0.0.1:80/api/v4/"
set "output_file=url.bat"
REM 发起API请求,获取所有项目
curl -s --header "Private-Token: %private_token%" "%gitlab_url%projects" > projects.json
REM 解析JSON文件,提取仓库URL地址,并输出到文件
(for /F "tokens=1,2 delims=^," %%A in ('type projects.json ^| jq -r ".[].http_url_to_repo"') do (
echo %%A
)) > %output_file%
REM 删除临时文件
del projects.json
echo 完成!URL地址已保存到 %output_file%
pause