wget下载Gitlab的存档
1.wget下载Gitlab项目下整个分支的的存档,download_branch_archive.sh
#!/bin/bash # GitLab 实例的地址 GITLAB_HOST="172.16.88.5" # 项目 ID PROJECT_ID="108" # 分支名称 BRANCH="StandAlone-4.6.0" # GitLab 访问令牌 PRIVATE_TOKEN="ijUGXs1DQy5hMTzKjtt789" # 存档格式(可选:zip、tar.gz、tar.bz2) FORMAT="zip" # 构建 API URL API_URL="http://${GITLAB_HOST}/api/v4/projects/${PROJECT_ID}/repository/archive.${FORMAT}?sha=${BRANCH}" # 使用 curl 发送 GET 请求下载项目存档 curl --header "PRIVATE-TOKEN: ${PRIVATE_TOKEN}" "$API_URL" --output project_archive_${BRANCH}.${FORMAT}
- 参数解释
当构建 API_URL 时,每个参数的含义如下: ${GITLAB_HOST}:GitLab 实例的主机地址,这是 GitLab 的基础 URL。 /api/v4/projects/:GitLab API 的项目路径,这是 API 的基础路径。 ${PROJECT_ID}:你的项目在 GitLab 中的唯一标识符,用于指定要操作的项目。 /repository/archive.:指定要访问的 Git 存储库的归档(存档)功能。 ${FORMAT}:指定要下载的存档文件的格式,这可以是 zip、tar.gz 或 tar.bz2 等。 ?sha=${BRANCH}:表示要下载的存档文件的分支名称,sha 是 Git 中表示分支的哈希值,这里直接使用分支名称来表示。 因此,构建出来的 API_URL 是用于下载特定项目、特定分支的存档文件的 URL
2.wget下载Gitlab项目分支下指定的存档,download_directory_archive.sh
#!/bin/bash # GitLab 实例的地址 GITLAB_HOST="172.16.88.5" # 项目 ID PROJECT_ID="108" # 分支名称 BRANCH="StandAlone-4.6.0" # 目录路径 DIRECTORY_PATH="X86" # GitLab 访问令牌 PRIVATE_TOKEN="ijUGXs1DQy5hMTzKjtt789" # 存档格式(可选:zip、tar.gz、tar.bz2) FORMAT="zip" # 构建 API URL API_URL="http://${GITLAB_HOST}/api/v4/projects/${PROJECT_ID}/repository/archive.${FORMAT}?sha=${BRANCH}&path=${DIRECTORY_PATH}" # 使用 curl 发送 GET 请求下载目录存档 curl --header "PRIVATE-TOKEN: ${PRIVATE_TOKEN}" "$API_URL" --output directory_archive_${BRANCH}_${DIRECTORY_PATH}.${FORMAT}
- 参数解释
这个 API_URL 是用于构建 GitLab API 请求的 URL,用于获取指定分支下特定目录的存档文件。下面是每个参数的解释: ${GITLAB_HOST}:GitLab 实例的主机地址,这是 GitLab 的基础 URL,用于构建完整的 API 请求 URL。 /api/v4/projects/:GitLab API 的项目路径,用于指定要操作的项目。 ${PROJECT_ID}:你的项目在 GitLab 中的唯一标识符,用于指定要操作的项目。 /repository/archive.:指定要访问的 Git 存储库的归档(存档)功能。 ${FORMAT}:指定要下载的存档文件的格式,这可以是 zip、tar.gz 或 tar.bz2 等。 ?sha=${BRANCH}:表示要下载的存档文件的分支名称,${BRANCH} 是指定的分支名称。 &path=${DIRECTORY_PATH}:表示要下载的存档文件所在目录的路径,${DIRECTORY_PATH} 是指定的目录路径。 因此,构建出来的 API_URL 是用于获取指定项目、指定分支、指定目录下的存档文件的完整 URL
3.wget下载Gitlab项目下整个项目所有分支的的存档,download_project_archive.sh
#!/bin/bash # GitLab 实例的地址 GITLAB_HOST="172.16.88.5" # 项目 ID PROJECT_ID="108" # GitLab 访问令牌 PRIVATE_TOKEN="ijUGXs1DQy5hMTzKjtt789" # 存档格式(这里是 zip) FORMAT="zip" # 构建 API URL API_URL="http://${GITLAB_HOST}/api/v4/projects/${PROJECT_ID}/repository/archive.${FORMAT}" # 使用 curl 发送 GET 请求下载整个项目存档 curl --header "PRIVATE-TOKEN: ${PRIVATE_TOKEN}" "$API_URL" --output project_archive_all_branches.${FORMAT}
- 参数解释
这行代码构建了用于下载整个项目的存档的 GitLab API URL。以下是每个部分的解释: ${GITLAB_HOST}:GitLab 实例的主机地址,这是 GitLab 的基础 URL。 /api/v4/projects/:GitLab API 的项目路径,用于指定要操作的项目。 ${PROJECT_ID}:你的项目在 GitLab 中的唯一标识符,用于指定要操作的项目。 /repository/archive.:指定要访问的 Git 存储库的归档(存档)功能。 ${FORMAT}:指定要下载的存档文件的格式,这可以是 zip、tar.gz 或 tar.bz2 等。 因此,构建出来的 API_URL 是用于下载整个项目的存档文件的完整 URL
4.其他
4.1 Gitlab项目ID获取
4.2 Gitlab访问令牌配置,最后创建令牌就会生成,需要保存好
5.官方文档
https://docs.gitlab.com/ee/api/repositories.html