code_work_spawner/examples
insleker 58b7d333cb feat: add OpenProject issue tracker support for #32 2026-04-10 01:30:37 +08:00
..
README.md feat: add OpenProject issue tracker support for #32 2026-04-10 01:30:37 +08:00
simple-gitea.yaml feat: add project scm configuration (#30) 2026-04-09 16:05:42 +08:00
simple-github.yaml feat: add project scm configuration (#30) 2026-04-09 16:05:42 +08:00
simple-openproject.yaml feat: add OpenProject issue tracker support for #32 2026-04-10 01:30:37 +08:00

README.md

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:

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-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.