@froggy1014/n8n-nodes-gitea
v0.5.0
Published
Unofficial n8n community node for the Gitea API. Generated from the official Gitea swagger spec and kept in sync automatically. Not affiliated with Gitea Ltd.
Maintainers
Readme
n8n-nodes-gitea
Unofficial n8n community node for the Gitea API. Works with any Gitea instance (self-hosted or gitea.com). Not affiliated with Gitea Ltd.
Pinned Gitea API version: v1.27.1 — see scripts/spec/gitea-version.json.
How it stays up to date
The node definitions are generated from the official Gitea swagger spec, not written by hand:
scripts/spec/swagger.json ← fetched from go-gitea/gitea (fetch-spec.mjs)
│
▼ scripts/generate.mjs (filtered by scripts/allowlist.json)
nodes/Gitea/descriptions/*.ts — n8n UI fields per resource
nodes/Gitea/registry.ts — method/path/param mapping per operationA scheduled GitHub Action checks for new Gitea releases every Monday. When one appears it re-fetches the spec, regenerates everything, bumps the package version, and opens a PR with the diff for review. CI verifies that generated files always match the pinned spec.
To update manually:
npm run fetch-spec -- 1.28.0 # fetch new spec + move the pin
npm run build # regenerate + compileResources and operations
47 operations across 10 resources (allowlist of the 482 operations in the full spec):
| Resource | Operations | |----------|-----------| | Repository | Search, Get, Create, Delete, List Commits, List Tags | | Branch | List, Get, Create | | File | Get, Create, Update, Delete | | Issue | List, Get, Create, Update, Search, List/Create Comments, List/Add Labels | | Pull Request | List, Get, Create, Update, Merge | | Release | List, Get, Get Latest, Create, Update, Delete | | Webhook | List, Create, Delete | | User | Get Current, Get, Search, List Repos, List Own Repos | | Organization | List, Get, List Members, List Repos, Create Repo | | Instance | Get Version |
Need another endpoint? Add its operationId to scripts/allowlist.json
and run npm run build — no hand-written node code required.
Gitea Trigger
The Gitea Trigger node starts workflows on repository events (push, issues, pull requests, releases — 24 event types). Unlike passive webhook triggers, it manages the webhook for you:
- Activate → registers the webhook on the repository via the Gitea API
- Deactivate → deletes it again
- A random secret is set on registration and every delivery's
X-Gitea-Signature(HMAC-SHA256) is verified — unauthorized calls get a 403
Just pick owner, repository, and events. Requires a token with repository webhook scope.
Mock Data
Every operation has a Mock Data toggle: turn it on to get a deterministic sample response generated from the operation's response schema in the spec — no credential or Gitea instance needed. Useful for sketching workflows before wiring the real thing. Mocks are regenerated together with the descriptions on every spec update.
Credentials
Create a Gitea API credential in n8n:
- Base URL — root of your instance, e.g.
https://gitea.example.com(no/api/v1) - Access Token — Gitea > Settings > Applications > Generate New Token
(needs at least the
read:userscope)
The credential test calls GET /api/v1/user, which actually validates the token —
/version responds 200 even without authentication on most instances.
Installation
Community nodes panel: Settings > Community Nodes > Install → @froggy1014/n8n-nodes-gitea.
Or in a custom Docker image:
RUN npm install -g @froggy1014/n8n-nodes-giteaDevelopment
npm install
npm run build # generate + tsc + copy assets
npm run lintGenerated files (nodes/Gitea/descriptions/, nodes/Gitea/registry.ts) are committed so
the package builds without network access, but must never be edited by hand — CI fails if
they drift from the spec.
