github actions yml文件设置 读取其它项目的分支列表 并且供使用者下拉选择
要在 GitHub Actions 的 YAML 文件中读取其他项目的分支列表,并且提供给使用者下拉选择,可以使用 GitHub API 来获取其他项目的分支列表,并将其作为下拉选择的选项。
以下是一个示例的 YAML 文件,演示了如何实现这个功能:
name: Fetch Branches
on:
workflow_dispatch:
jobs:
fetch-branches:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Fetch branches
id: fetch-branches
run: |
# 通过 GitHub API 获取其他项目的分支列表
branches=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/OWNER/REPO/branches" | \
jq -r '.[].name')
# 将分支列表保存为输出变量
echo "::set-output name=branches::$branches"
- name: Select branch
id: select-branch
run: |
# 获取分支列表输出变量的值
branches="${{ steps.fetch-branches.outputs.branches }}"
# 将分支列表转换为 JSON 格式
json=$(echo "$branches" | jq -R -s 'split("\n")[:-1] | map({name: .})')
# 通过 GitHub Actions 提供的 input 下拉选择,供使用者选择分支
echo "::set-output name=selected-branch::$(echo "$json" | jq -r '.[0].name')"
echo "::set-output name=branch-options::$json"
- name: Use selected branch
run: |
# 获取选择的分支输出变量的值
selectedBranch="${{ steps.select-branch.outputs.selected-branch }}"
# 使用选择的分支进行后续操作
echo "Selected branch: $selectedBranch"
在上述示例中,首先使用 actions/checkout 动作来检出其他项目的代码。然后,使用 curl 命令通过 GitHub API 获取其他项目的分支列表,并使用 jq 工具提取出分支名称。接下来,将分支列表保存为输出变量 branches。
然后,在 select-branch 步骤中,将分支列表转换为 JSON 格式,并使用 GitHub Actions 提供的 input 下拉选择,供使用者选择分支。选择的分支将保存为输出变量 selected-branch。
最后,在 Use selected branch 步骤中,可以使用选择的分支进行后续操作。
请注意,上述示例中的 OWNER 和 REPO 需要替换为实际的项目所有者和仓库名称。此外,你还需要在仓库的 Secrets 中添加一个名为 GITHUB_TOKEN 的密钥,以便通过 GitHub API 进行身份验证。
希望这个示例能够帮助到你!
原文地址: http://www.cveoy.top/t/topic/isjr 著作权归作者所有。请勿转载和采集!