)
gh-aw 触发器完全指南on 字段全事件类型与组合技巧新手快速上手【免费下载链接】gh-awGitHub Agentic Workflows项目地址: https://gitcode.com/GitHub_Trending/gha/gh-awgh-awGitHub Agentic Workflows让你用 Markdown 定义 AI 自动化工作流而控制工作流何时运行的正是 YAML frontmatter 里的on字段。本文带你完整掌握 gh-aw 触发器从基础事件类型push、pull_request、issues、schedule 等到 gh-aw 独有的模糊定时、标签命令、角色过滤等高级组合技巧帮助新手快速写出既安全又省成本的 AI 自动化流程。快速开始安装 gh-aw 并添加第一个工作流只需两步即可开始安装gh awCLI 扩展然后添加你的第一个触发器。工作流是放在仓库里的 Markdown 文件通常位于.github/workflows/目录on字段写在文件开头的 frontmatter 中运行gh aw compile后会编译成标准的 GitHub Actions 工作流。最简单的手动运行触发器on: workflow_dispatch:基础事件类型一览on 字段支持哪些触发gh-aw 支持所有标准 GitHub Actions 触发器下表是最常用的几类事件类型用途常见写法workflow_dispatch手动触发UI / API /gh aw runon: manualschedule定时运行支持自然语言on: dailyissuesIssue 生命周期事件types: [opened, labeled]pull_request拉取请求事件types: [opened, synchronize]issue_comment/pull_request_review_comment评论事件types: [created]workflow_run另一个工作流完成后触发workflows: [CI]repository_dispatch外部系统通过 API 触发types: [jira-issue-created]deployment_status部署状态变更state: [error, failure]slash_command在评论中输入/命令触发name: investigatelabel_command给 Issue/PR 打标签即触发自动移除标签name: deploy完整定义位于 docs/src/content/docs/reference/triggers.md触发字段的解析实现在pkg/workflow/trigger_parser.go。定时触发技巧不用手写 cron 的模糊调度schedule是 gh-aw 最贴心的触发器——支持自然语言编译器会把所有工作流的执行时间分散开避免同一时刻扎堆消耗算力on: schedule: daily # 编译器自动挑一个分散的时刻 # schedule: daily around 14:00 # 14:00 ± 1 小时内随机 # schedule: weekly on monday # 每周一 # schedule: daily between 9am and 5pm utc-5 # 美国东部工作时间内分散需要精确定时则用标准 cron还可指定时区on: schedule: - cron: 30 9 * * 1-5 timezone: America/New_York下面是一个每天定时运行的仓库日报工作流实际执行后的结果定时触发器是运维型自动化的核心模糊调度的解析逻辑在pkg/parser/schedule_parser.go配套文档见docs/src/content/docs/reference/schedule-syntax.md。PR 与 Issue 触发器用 types 精确控制事件对pull_request/issues等事件用types指定具体活动如opened、synchronize、labeled、ready_for_review避免无关事件浪费 AI 调用on: pull_request: types: [opened, synchronize] forks: [trusted-org/*] # 默认屏蔽 fork PR此处显式放行可信组织gh-aw 还内置了几个实用开关forks:—— 默认拒绝外部 fork 的 PR安全默认值可用通配符精确放行max-stack:—— 堆叠 PR 场景下只在最顶层 PR 上运行显著降低重复 CI 成本-1表示全部运行lock-for-agent: true—— 运行期间锁定 Issue防止并发修改造成竞态。高级组合技巧让触发器更聪明、更省钱on块内可以叠加多种过滤与成本控制字段这是 gh-aw 触发器区别于原生 Actions 的关键1️⃣ 标签过滤与标签命令on: issues: types: [labeled] names: [bug, critical] # 只有这些标签才触发一行简写同样可以on: issue labeled bug, critical。如果想打标签即触发、触发后自动移除标签用label_command: deploy更简洁。2️⃣ 搜索条件去重skip-if-match / skip-if-no-match定时任务最常见的痛点是重复运行用 GitHub 搜索语法即可解决on: schedule: daily skip-if-match: is:issue is:open in:title [daily-report] # 已有报告就跳过3️⃣ 控制谁能触发roles 与 botson: issues: types: [opened] roles: [admin, maintainer, write] # 精确白名单注意是精确匹配 skip-bots: [dependabot] # 或排除特定机器人4️⃣ 成本与审批护栏stop-after: 7d—— 到期后自动停止触发防止遗忘的定时任务持续烧钱manual-approval: production—— 接入 GitHub 环境审批规则高危操作先人工批准reaction: rocket/status-comment: true—— 运行时自动贴表情和状态评论让团队随时看到 AI 进展。触发器简写速查表一行搞定不想写完整 YAMLgh-aw 支持自然语言简写编译器会自动展开并附带workflow_dispatchon: push to main on: pull_request opened affecting src/** on: issue opened on: comment created on: release published on: dependabot pull request on: deployment failed on: workflow completed ci-test常见问题与最佳实践command 触发器不要与评论事件混用slash_command与issues/issue_comment等事件同写一个on块会在编译期报冲突错误校验逻辑见pkg/parser/schema_triggers.go。roles是精确匹配而非权限下限写roles: [write]会把 admin 拒之门外需要全部列出。workflow_run必须显式写workflows:名称留空会被 GitHub 静默禁用gh-aw 也会在编译时直接报错。默认从简优先用pull_request: types: [opened]这类窄触发 标签过滤而不是所有事件全开这是控制 AI 调用成本最有效的习惯。掌握以上事件类型与组合技巧后你已能覆盖绝大多数自动化场景。更多细节可查阅仓库内的docs/src/content/docs/reference/triggers.md触发器完整参考与docs/src/content/docs/reference/command-triggers.md命令触发器详解动手从on: manual开始逐步叠加 schedule、标签过滤与成本控制字段吧。【免费下载链接】gh-awGitHub Agentic Workflows项目地址: https://gitcode.com/GitHub_Trending/gha/gh-aw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考