forked from bkinnightskytw/code_work_spawner
75 lines
3.2 KiB
Markdown
75 lines
3.2 KiB
Markdown
# Config Examples
|
|
|
|
The repo uses an Agent Orchestrator style YAML config with `defaults` and `projects`.
|
|
|
|
Project entries can override `issueAssistant` fields when a repo needs a
|
|
different prompt, mention triggers, responder chain, notification list, or
|
|
event source.
|
|
|
|
Each project also has a separate SCM config. `issueTracker.provider` selects
|
|
the issue tracker integration, while `scm.provider` selects how temporary repo
|
|
workspaces are prepared for responders. Legacy top-level project `provider` is
|
|
still accepted during load for backward compatibility. When `scm` is omitted
|
|
it defaults to a matching provider for existing GitHub and Gitea configs.
|
|
|
|
GitHub projects default to `gh/polling`, and Gitea projects default to
|
|
`tea/polling`. OpenProject projects default to `op/polling` and currently only
|
|
support polling. Because OpenProject issue tracking is not tied to a repository
|
|
host, OpenProject projects must set `scm.provider` explicitly. GitHub projects
|
|
can switch their long-running runtime to
|
|
`gh/gosmee` or `gh/webhook-forward`, and Gitea projects can switch to
|
|
`tea/gosmee`.
|
|
For OpenProject, `repo` may be either a numeric project id or an exact project
|
|
name.
|
|
`gh/gosmee` creates a temporary GitHub webhook that targets a generated gosmee
|
|
URL. `gh/webhook-forward` starts `gh webhook forward` for `issues` and
|
|
`issue_comment` events. `tea/gosmee` creates a temporary Gitea webhook that
|
|
targets a generated gosmee URL. Channel-based event sources always run one
|
|
startup reconciliation poll. Set `reconciliation: continuous` plus
|
|
`reconcileInterval` to keep periodic reconciliation active for missed-event
|
|
recovery, or use `reconciliation: startup-only` to skip background polling
|
|
after startup. `--once` still uses a single polling reconciliation cycle so
|
|
existing backlog handling keeps working.
|
|
|
|
Use a nested `issueAssistant.eventSource` object so source-specific fields stay
|
|
grouped with the selected source type. For example:
|
|
|
|
```yaml
|
|
issueAssistant:
|
|
eventSource:
|
|
type: gh/webhook-forward
|
|
reconciliation: continuous
|
|
reconcileInterval: 300s
|
|
```
|
|
|
|
```yaml
|
|
issueAssistant:
|
|
eventSource:
|
|
type: gh/polling
|
|
pollInterval: 30s
|
|
```
|
|
|
|
Generated comments include both a visible prefix and footer by default so it is
|
|
clear the reply came from automation even when `gh` or `tea` is authenticated
|
|
as a human account. Those markers support template variables such as
|
|
`{{tracker_login}}`, `{{tracker_cli}}`, `{{repo}}`, `{{project_key}}`,
|
|
`{{issue_number}}`, `{{trigger}}`, `{{comment_tag}}`, and `{{fingerprint}}`.
|
|
`{{gh_login}}` is still populated for backward compatibility. Set either
|
|
template to an empty string to disable that section.
|
|
|
|
Discord notifications are configured under `issueAssistant.notifications`.
|
|
Currently supported fields are:
|
|
|
|
- `type: discordWebhook`
|
|
- `enabled`
|
|
- `events`: any of `mention_detected`, `reply_posted`, `no_reply`, `responder_failed`
|
|
- `webhookUrl`
|
|
- `username`
|
|
- `avatarUrl`
|
|
|
|
Start from [`examples/simple-github.yaml`](simple-github.yaml) for GitHub,
|
|
[`examples/simple-gitea.yaml`](simple-gitea.yaml) for Gitea, or
|
|
[`examples/simple-openproject.yaml`](simple-openproject.yaml) for OpenProject.
|
|
This repo uses `dataDir`, `worktreeDir`, and `projects`, and uses
|
|
`worktreeDir` for bug-verification worktrees.
|