code_work_spawner/examples/README.md

3.4 KiB

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, GitLab, and Gitea configs.

GitHub projects default to gh/polling, GitLab projects default to
glab/polling, and Gitea projects default to tea/polling. OpenProject
projects default to op/polling and currently only support polling. GitLab and
OpenProject currently support polling only. 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:

issueAssistant:
  eventSource:
    type: gh/webhook-forward
    reconciliation: continuous
    reconcileInterval: 300s
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 for GitHub,
examples/simple-gitlab.yaml for GitLab,
examples/simple-gitea.yaml for Gitea, or
examples/simple-openproject.yaml for OpenProject.
This repo uses dataDir, worktreeDir, and projects, and uses
worktreeDir for bug-verification worktrees.