Add glab-backed GitLab issue polling, login lookup, and comment posting so GitLab projects can be handled alongside GitHub, Gitea, and OpenProject. Also wire GitLab through SCM selection, config defaults, docs, and examples so issue #35 can be configured end to end. |
||
|---|---|---|
| .. | ||
| README.md | ||
| simple-gitea.yaml | ||
| simple-github.yaml | ||
| simple-gitlab.yaml | ||
| simple-openproject.yaml | ||
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, 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: discordWebhookenabledevents: any ofmention_detected,reply_posted,no_reply,responder_failedwebhookUrlusernameavatarUrl
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.