* feat(hub): deploy canonical workflow bundles Keep CLI deployment aligned with Hub's authored bundle boundary so validation and activation receive the same deterministic source files. Public documentation now teaches that boundary as the only configuration format. * test(hub): assert validation diagnostics directly * refactor(hub): deepen HTTP client module * feat(hub): validate named agent configurations * docs(hub): align Claude mode example
54 lines
2.0 KiB
Markdown
54 lines
2.0 KiB
Markdown
---
|
|
title: GitHub triggers
|
|
description: Configure GitHub events with explicit step-scoped GitHub authority.
|
|
nav: GitHub
|
|
order: 67
|
|
category: Hub
|
|
---
|
|
|
|
# GitHub triggers
|
|
|
|
| `on` | Event |
|
|
| ------------------------------------ | ------------------------------------ |
|
|
| `github.issue_comment` | Comment on an issue or pull request. |
|
|
| `github.issues` | Issue event. |
|
|
| `github.pull_request_review` | Pull request review. |
|
|
| `github.pull_request_review_comment` | Diff comment. |
|
|
|
|
GitHub sends every subscribed action. Each delivery that passes the filters starts a run.
|
|
|
|
`.paseo/workflows/github-change.yml`:
|
|
|
|
```yaml
|
|
name: github-change
|
|
on: github.issue_comment
|
|
max_runtime: 2h
|
|
filters:
|
|
repo: example/project
|
|
contains: "@paseo"
|
|
from_users: [maintainer]
|
|
steps:
|
|
- id: implement
|
|
environment: dev
|
|
max_runtime: 90m
|
|
idle_timeout: 10m
|
|
agent: codex
|
|
github:
|
|
connection: example-github
|
|
repositories: [example/project]
|
|
permissions:
|
|
contents: write
|
|
pull_requests: write
|
|
prompt:
|
|
- text: |
|
|
Implement the request and open a pull request with gh.
|
|
Call hub.finish_execution when done.
|
|
${{ paseo.prompt }}
|
|
```
|
|
|
|
`from_users` matches the GitHub login. `contains` checks event text and `pattern` checks its start. Comment events use the comment body; issue events use title plus body.
|
|
|
|
A GitHub trigger grants no token. Authority is the `github` block on the step that needs it. GitHub has no `hub.reply` capability; the agent acts through `gh` within the declared connection, repositories, and permissions.
|
|
|
|
On comment events, Hub reacts with 👀 when accepted, 🚀 when the agent starts, 👍 on completion, and 👎 on failure. `${{ paseo.prompt }}` contains normalized request text, not event identifiers. Use `${{ paseo.context }}` in prompt text when the step explicitly needs provider context.
|