前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何远程触发 GitHub Action

如何远程触发 GitHub Action

原创
作者头像
陈少文
修改2021-08-26 10:32:24
2.2K0
修改2021-08-26 10:32:24
举报
文章被收录于专栏:陈少文

通常,我们需要在 GitHub 上进行一些操作,才能触发 GitHub Action。本篇将介绍一种通过 API 远程调用触发 GitHub Action 的方法。

1. 常见的几种触发 GitHub Action 的方式

下面是一个 GitHub Action 的示例:

1 2 3 4 5 6 7

name: GitHub Actions Demo on: [push, pull_request] jobs: Explore-GitHub-Actions: runs-on: ubuntu-latest steps: - run: echo "Hello World!"

在 on 关键字下,定义的就是触发 Workflow 执行的事件。下面常用的几种 GitHub Action 事件:

  • workflow_dispatch, 手动触发

在 inputs 中可以添加交互参数(可选)。

1 2 3 4 5 6 7

on: workflow_dispatch: inputs: name: description: 'Person to greet' required: true default: 'Mona the Octocat'

  • push, 推送代码

1 2

on: push

  • issues, issues 生命周期

1 2 3

on: issues: types: [opened, edited, milestoned]

  • issue_comment, issue 评论

1 2 3

on: issue_comment: types: [created, deleted]

  • project, 项目管理生命周期

1 2 3

on: project: types: [created, deleted]

  • pull_request, pr 生命周期

1 2 3

on: pull_request: types: [assigned, opened, synchronize, reopened]

利用这些事件 hook,可以自动化很多流程。

2. 使用 API 远程触发 GitHub Action

2.1 创建一个 Token

访问链接页面 https://github.com/settings/tokens/new 申请一个 Token。

需要勾选 repo 权限。

2.2 添加

在仓库 https://github.com/shaowenchen/wait-webhook-to-run 下,新建一个文件 .github/workflows/worker.yml。内容如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14

on: repository_dispatch: types: - webhook-1 - webhook-2 jobs: run: runs-on: ubuntu-latest steps: - name: Hello World run: | echo Hello World!

repository_dispatchtypes 中,可以自定义事件类型。

2.3 远程触发 Github Action

下面是 API 调用格式:

1 2 3 4

curl -X POST https://api.github.com/repos/:owner/:repo/dispatches \ -H "Accept: application/vnd.github.everest-preview+json" \ -H "Authorization: token TRIGGER_TOKEN" \ --data '{"event_type": "TRIGGER_EVENT"}'

其中,owner 是用户名,repo 是仓库名, TRIGGER_TOKEN 是上面申请的 Token 凭证,TRIGGER_EVENT 是自定义的事件名。

  • 触发 webhook-1 事件

1 2 3 4

curl -X POST https://api.github.com/repos/shaowenchen/wait-webhook-to-run/dispatches \ -H "Accept: application/vnd.github.everest-preview+json" \ -H "Authorization: token ghp_xxxxxxxxxxxxxxxxxxxxxxxxxx" \ --data '{"event_type": "webhook-1"}'

  • 触发 webhook-2 事件

1 2 3 4

curl -X POST https://api.github.com/repos/shaowenchen/wait-webhook-to-run/dispatches \ -H "Accept: application/vnd.github.everest-preview+json" \ -H "Authorization: token ghp_xxxxxxxxxxxxxxxxxxxxxxxxxx" \ --data '{"event_type": "webhook-2"}'

查看 GitHub Action 执行:

3. 参考


原文链接 https://www.chenshaowen.com/blog/how-to-trigger-github-action-remotely.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 常见的几种触发 GitHub Action 的方式
  • 2. 使用 API 远程触发 GitHub Action
    • 2.1 创建一个 Token
      • 2.2 添加
        • 2.3 远程触发 Github Action
        • 3. 参考
        相关产品与服务
        项目管理
        CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档