现在场景是gitlab 上的所有项目的分支都是以rt-开头 以数字结尾 比如rt-100 现在请使用shell脚本 通过gitlab1的api获得所有项目的以rt-开头 并且找到rt-后面数字最大的分支
时间: 2024-06-08 11:09:29 浏览: 104
硬件定时器设备使用示例-ocp nic 3.0 design specification
可以使用以下 shell 脚本实现:
```shell
#!/bin/bash
# GitLab API 地址和访问令牌
GITLAB_API_URL="https://gitlab.example.com/api/v4"
GITLAB_API_TOKEN="your_access_token"
# 获取所有项目列表
PROJECTS=$(curl --header "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" "${GITLAB_API_URL}/projects?per_page=100" | jq -r '.[].path_with_namespace')
# 遍历所有项目
for PROJECT in ${PROJECTS}; do
echo "Checking project ${PROJECT}..."
# 获取项目所有分支
BRANCHES=$(curl --header "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" "${GITLAB_API_URL}/projects/${PROJECT}/repository/branches" | jq -r '.[].name')
# 查找以 rt- 开头的分支中数字最大的分支
MAX_BRANCH=""
MAX_NUMBER=0
for BRANCH in ${BRANCHES}; do
if [[ "${BRANCH}" =~ ^rt-([0-9]+)$ ]]; then
NUMBER="${BASH_REMATCH[1]}"
if (( NUMBER > MAX_NUMBER )); then
MAX_BRANCH="${BRANCH}"
MAX_NUMBER="${NUMBER}"
fi
fi
done
# 输出结果
if [[ -n "${MAX_BRANCH}" ]]; then
echo " Found branch ${MAX_BRANCH}"
else
echo " No matching branch found"
fi
done
```
注意替换脚本中的 GitLab API 地址和访问令牌。此脚本假设使用 `jq` 工具解析 JSON 响应。
阅读全文