Github Actions 中的repository_dispatch 和workflow_dispatch 有什么区别?

Saj*_*ath 26 github github-actions

请用一些现实世界的例子解释这两个事件触发器之间的区别。

Von*_*onC 11

显然,repository_dispatch事件只能在默认分支上读取

看:

对于后者,来自威廉·维伦纽夫:

# TODO: replace :token, :user, and :repo
curl -H "Authorization: token :token" \
    -H 'Accept: application/vnd.github.everest-preview+json' \
    "https://api.github.com/repos/:user/:repo/dispatches" \
    -d '{"event_type": "awesomeness", "client_payload": {"foo": "bar"}}'
Run Code Online (Sandbox Code Playgroud)
name: example-client-payload-action
on: repository_dispatch
jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - run: 'echo "field: ${{ github.event.client_payload.foo }}"'
      - run: 'echo "payload: ${{ toJson(github.event.client_payload) }}"'
      - run: echo baz
        if: github.event.action == 'baz'
Run Code Online (Sandbox Code Playgroud)

正如这里所见:

只是在这里发布,因为它似乎没有记录 - 您还可以指定要触发的类型列表:

on:
  repository_dispatch:
    types:
      - manual-trigger-mytest
      - manual-trigger-all
Run Code Online (Sandbox Code Playgroud)

来自“手动触发 GitHub Actions 工作流程”