83a42de9e2d995b0372f5d8464d88aa1ad53c887
- Replace per-repo event polling with notification-based polling - Collab repos default to mention-only mode (respond only when @mentioned) - Own repos default to all-events mode (respond to everything) - Parse @mentions and extract directive text for focused LLM context - Notification poll interval: 30s (configurable via PI_NOTIF_POLL_INTERVAL) - Mark notifications as read after processing (no ID tracking needed) - Add gitea_repo_config tool to switch repos between 'all' and 'mention' modes - Add gitea_tracked_repos tool to show all repos and their response modes - Persist per-repo configs to disk across reloads - Multi-bot coordination: issues can @mention different bots with directives
gitea
Consolidated Gitea API client and pi extension for git.dominat.us.
Provides a pure TypeScript Gitea API client (no external dependencies), a pi extension that registers tools for LLM use, and a standalone CLI.
Structure
src/ Core API client (pure fetch, token auth, zero deps)
pi-extension/ Pi extension adapter (registers tools + webhook server)
cli.ts Standalone CLI
SKILL.md Agent skill definition (auto-discovered by pi)
TOOL.md Tool reference documentation
Installation
As a pi extension
Add to your settings.json:
{
"packages": ["/path/to/gitea/pi-extension"]
}
Or place/symlink pi-extension/ into your <agentDir>/extensions/ directory.
As a library
import { GiteaClient, listRepos, getIssue } from "./src/index.js";
const client = new GiteaClient({
url: "https://git.dominat.us",
token: "your-token",
});
const repos = await listRepos(client);
const issue = await getIssue(client, "owner", "repo", 1);
As a CLI
export GITEA_TOKEN="your-token"
npx tsx cli.ts whoami
npx tsx cli.ts repos
npx tsx cli.ts issues owner/repo
npx tsx cli.ts create-issue owner/repo "Bug title" --body "Description"
Configuration
| Variable | Purpose | Default |
|---|---|---|
GITEA_URL |
Gitea instance URL | https://git.dominat.us |
GITEA_TOKEN |
API token (required) | — |
GITEA_OWNER |
Default repo owner | — |
GITEA_REPO |
Default repo name | — |
See TOOL.md for full tool documentation and SKILL.md for the agent skill definition.
Auth
All API calls use Authorization: token <GITEA_TOKEN> header. No HMAC secrets.
Webhook endpoint optionally validates with Authorization: Bearer <PI_WEBHOOK_TOKEN>.
Description
Languages
TypeScript
92.9%
JavaScript
7.1%