要在 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 步骤中,可以使用选择的分支进行后续操作。

请注意,上述示例中的 OWNERREPO 需要替换为实际的项目所有者和仓库名称。此外,你还需要在仓库的 Secrets 中添加一个名为 GITHUB_TOKEN 的密钥,以便通过 GitHub API 进行身份验证。

希望这个示例能够帮助到你!

github actions yml文件设置 读取其它项目的分支列表 并且供使用者下拉选择

原文地址: http://www.cveoy.top/t/topic/isjr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录