feat: org-level custom fields for repos and issues — replace manifest.xml and per-repo field setup #483

Open
opened 2026-06-04 22:57:54 +00:00 by jmiller · 0 comments
Owner

Summary

Custom fields defined once at the org level that automatically cascade to all repos. No per-repo field definitions needed. Two scopes: repo metadata and issue fields.

Architecture

Org-Level Only

Org admins define all custom fields at /-/org/{orgname}/settings/custom-fields. Fields cascade to every repo in the org automatically.

  • scope=repo: metadata fields shown in repo settings (Platform, Package Type, Entry Point, etc.)
  • scope=issue: issue fields shown in every issue sidebar across all repos (Status, Priority, Sprint, etc.)

No per-repo field definitions. Repos only fill in values.

Data Model

custom_field_def
  id, owner_id (org), scope (issue|repo),
  name, field_type, options, required, sort_order, is_active

custom_field_value
  id, entity_id (issue_id or repo_id), field_id, value

Existing repo_id column in custom_field_def becomes unused (or removed). All definitions are org-scoped via owner_id.

UI

Location Purpose
Org Settings > Custom Fields Create/edit/delete field definitions (both scopes)
Repo Settings > Metadata Fill in values for repo-scoped fields
Issue Sidebar Inline editing for issue-scoped fields (existing dropdown UI)

Migration

  1. Move existing custom_field_def from per-repo to org-level (set owner_id, clear repo_id)
  2. Issue sidebar loads fields by owner_id instead of repo_id
  3. Build org settings page for field management
  4. Build repo settings metadata page for repo-scoped values
  5. Migrate manifest.xml fields into org-level repo custom fields
  6. Deprecate manifest.xml

Replaces

  • .mokogitea/manifest.xml static files
  • Per-repo custom field definitions
  • Status/priority labels on issues

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

## Summary Custom fields defined **once at the org level** that automatically cascade to all repos. No per-repo field definitions needed. Two scopes: repo metadata and issue fields. ## Architecture ### Org-Level Only Org admins define all custom fields at `/-/org/{orgname}/settings/custom-fields`. Fields cascade to every repo in the org automatically. - **scope=repo**: metadata fields shown in repo settings (Platform, Package Type, Entry Point, etc.) - **scope=issue**: issue fields shown in every issue sidebar across all repos (Status, Priority, Sprint, etc.) No per-repo field definitions. Repos only fill in values. ## Data Model ``` custom_field_def id, owner_id (org), scope (issue|repo), name, field_type, options, required, sort_order, is_active custom_field_value id, entity_id (issue_id or repo_id), field_id, value ``` Existing `repo_id` column in `custom_field_def` becomes unused (or removed). All definitions are org-scoped via `owner_id`. ## UI | Location | Purpose | |----------|--------| | Org Settings > Custom Fields | Create/edit/delete field definitions (both scopes) | | Repo Settings > Metadata | Fill in values for repo-scoped fields | | Issue Sidebar | Inline editing for issue-scoped fields (existing dropdown UI) | ## Migration 1. Move existing `custom_field_def` from per-repo to org-level (set `owner_id`, clear `repo_id`) 2. Issue sidebar loads fields by `owner_id` instead of `repo_id` 3. Build org settings page for field management 4. Build repo settings metadata page for repo-scoped values 5. Migrate manifest.xml fields into org-level repo custom fields 6. Deprecate manifest.xml ## Replaces - `.mokogitea/manifest.xml` static files - Per-repo custom field definitions - Status/priority labels on issues --- _Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>_
jmiller changed title from feat: repo-level custom fields — replace .mokogitea/manifest.xml with database-backed metadata to feat: org-level custom fields for repos and issues — replace manifest.xml and per-repo field setup 2026-06-04 22:59:17 +00:00
Sign in to join this conversation.
No labels
Type Feature
Status In Progress
Priority Medium
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoGitea#483