GitHub Actions 自动批准无法处理 GitHub Actions 机器人创建的拉取请求

Ani*_*rma 7 github github-actions

我在 GitHub 存储库中使用两个工作流程。

第一个工作流程由每次推送触发dev,并在新分支内提升版本bump-version并创建新的拉取请求dev


name: bump-version
on: 
  push:
    branches:
      - 'dev'

jobs:
  bumpVersionNumber:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v1
        with:
          node-version: 10
      - run: npm ci

      - name: Bump Version
        run: |
          git config --local user.email "action@github.com"
          git config --local user.name "GitHub Action"
          npm run release

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v4
        with:
          commit-message: bump version
          title: Bump version
          body: Bump version to reflect release changes
          branch: bump-version
          base: dev
Run Code Online (Sandbox Code Playgroud)

第二个工作流程应该由对新创建的分支的每个推送和拉取请求触发bump-version

name: auto-approve
on: 
  push:
  pull_request:
    branches:
      - 'bump-version'

jobs:
  autoApprove:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v1
        with:
          node-version: 10
      - run: npm ci
         
      - name: Pull request number
        run: |
          echo "Pull Request Number - ${{ github.event.pull_request.number }}"

      - name: Approve pull Request
        if: ${{ github.event.pull_request.number }}
        uses: hmarr/auto-approve-action@v2
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          pull-request-number: ${{ github.event.pull_request.number }}

Run Code Online (Sandbox Code Playgroud)

问题是,auto-approve当创建新的拉取请求或第一个工作流对分支进行推送时,第二个工作流不会被触发bump-version

我想知道为什么第二个工作流程auto-approve是通过推送任何分支而不是分支来触发的,以及为什么当从分支bump-version创建新的拉取请求时它不会被触发?bump-versiondev

它是否与 GitHub Actions 机器人创建拉取请求有关?

Gui*_*urd 9

默认情况下,当您使用存储库GITHUB_TOKEN执行任务时,触发的事件GITHUB_TOKEN不会创建新的工作流运行。这可以防止您意外创建递归工作流运行。

如果您确实想要从工作流运行中触发工作流,则可以使用个人访问令牌而不是GITHUB_TOKEN触发需要令牌的事件。

在这里,您在调用操作时必须使用此 PAT peter-evans/create-pull-request

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v4
        with:
          commit-message: bump version
          title: Bump version
          body: Bump version to reflect release changes
          branch: bump-version
          base: dev
          token: ${{ secrets.PAT }}
Run Code Online (Sandbox Code Playgroud)