Files
Gitea-Tools/docs/architecture/glitchtip-to-gitea-workflow-design.md
T

4.1 KiB

GlitchTip-to-Gitea Issue Filing Workflow Contract

  • Status: Contract for the library-only implementation in Scaled-Tech-Consulting/mcp-control-plane (#57)
  • Issue: #153 (supersedes #74/#78 as the Gitea-Tools tracker)
  • Related: #78 (deduplication design, child of #74)
  • Date: 2026-07-07

1. Boundary and Orchestration

  • GlitchTip-to-Gitea filing is NOT a GlitchTip MCP capability. The glitchtip-mcp boundary remains strictly read-only per ADR-0001.
  • The filing capability lives in a library-only orchestrator in mcp-control-plane and is not exposed through glitchtip-mcp.
  • The orchestrator composes the real GlitchTip read path with Gitea issue-write tools. It must not use mocked GlitchTip issue data in production filing paths.
  • The orchestrator must not centralize credentials into a single server. The GlitchTip MCP holds only GlitchTip tokens, and the Gitea MCP holds only Gitea tokens.
  • If a future MCP surface exposes filing, it must be a separate write-boundary server/profile with explicit Gitea issue-write permission and the same audit gates. It must not be added to the read-only glitchtip-mcp surface.

2. Invocation and Safety

  • Explicit invocation only: There is no automatic, unsupervised filing in phase 1. A human or an explicitly-triggered automation must initiate the workflow.
  • Dry-run / Preview required: The orchestrator must present a preview of the drafted Gitea issue (title, body, labels) and obtain explicit confirmation before calling the Gitea mutation tool to file the issue.
  • Gitea Profile Checks & Audit Logging: The actual Gitea issue creation relies on gitea-mcp, and therefore must pass Gitea profile checks and fail-closed mutation audit before create/link/comment actions.
  • Deduplication before create: The orchestrator must run the GlitchTip-to-Gitea dedup/linking logic before any Gitea create action. Create, link, and skip decisions must be represented in tests.

3. Gitea Issue Format

The workflow generates a Gitea issue using the following format and fields:

Required Fields

The issue body MUST include the following extracted fields from GlitchTip:

  • Project
  • Environment
  • Release
  • First seen / Last seen
  • Event count / User count
  • Stack summary (Truncated/summarized, no raw frames)
  • GlitchTip URL / linkback: A permalink back to the GlitchTip web UI so users can view the full unredacted data securely.

Title Format

[GlitchTip] {Project} - {Error Type}: {Short Message}

Labels

The orchestrator must apply the following labels upon creation:

  • source:glitchtip
  • bug
  • status:triage

4. Redaction Rules

To prevent PII or secret leakage into Gitea, the orchestrator and the underlying glitchtip-mcp read tools strictly omit and redact the following from the Gitea issue body:

  • Request bodies
  • Cookies and headers
  • Authentication tokens / Session IDs
  • PII (User emails, usernames, IPs)
  • Full raw stack traces (source code lines)

The principle is: "Link, don't dump". The generated issue acts as an alert/pointer, while the raw context remains protected inside GlitchTip.

5. Deduplication and Linking

Deduplication logic (e.g. searching existing Gitea issues, managing GlitchTip issue IDs, and race condition handling) is integrated into the library-only filing orchestrator in mcp-control-plane. The orchestrator must reuse that dedup/linking path instead of duplicating or bypassing it.

6. Gitea-Tools Acceptance Contract for #153

Gitea-Tools does not host the filing implementation. This repository owns the operator-facing contract:

  • glitchtip-mcp remains read-only and exposes only GlitchTip inspection tools.
  • Filing is implemented in mcp-control-plane, not in this Gitea MCP runtime.
  • Filing uses the real GlitchTip read path, not mocked issue data.
  • Dedup runs before any Gitea create action.
  • Create/link/skip decisions and audit failure are covered by orchestrator tests.
  • Mutation audit fails closed before any Gitea create, link, or comment mutation.
  • Any future MCP exposure requires a separate write-boundary server/profile and must not add Gitea write credentials to glitchtip-mcp.