[wp-meta] [Making WordPress.org] #8202: Expose Trac data via structured JSON API endpoints

Making WordPress.org noreply at wordpress.org
Thu Mar 12 14:18:19 UTC 2026


#8202: Expose Trac data via structured JSON API endpoints
--------------------------+--------------------
 Reporter:  juanmaguitar  |      Owner:  (none)
     Type:  enhancement   |     Status:  new
 Priority:  normal        |  Milestone:
Component:  Trac          |   Keywords:
--------------------------+--------------------
 Following
 [https://www.linkedin.com/feed/update/urn:li:ugcPost:7427054012476059648?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7427054012476059648%2C7430813134543679488%29
 Matt's suggestion], this ticket tracks adding structured JSON API
 endpoints to WordPress Trac to support triage workflows.

 A proof-of-concept Chrome extension ([https://github.com/juanma-wp/wp-
 trac-triager WP Trac Triager]) already demonstrates triage-assistance
 features built on top of this data ([https://youtu.be/lEzFKuSF-lg video
 demo], [https://juanma.codes/2026/02/16/wp-trac-triager-a-chrome-
 extension-for-wordpress-core-ticket-triage/ blog post]).

 == Phased approach ==

 '''Phase 1 (this ticket)''' — Implement JSON API endpoints that expose
 Trac data in a structured, machine-readable format. This is useful on its
 own: any tool, browser extension, or AI agent can consume the data
 directly without parsing Trac HTML.

 '''Phase 2 (separate ticket)''' — Implement native Trac UI enhancements
 that consume these endpoints. A separate ticket will allow proper
 discussion around the UI design and UX.

 == Architecture ==

 PHP scripts on the Trac server querying the SQLite DB directly via PDO,
 following the existing `trac-notifications` pattern
 (`Trac_Notifications_SQLite_Driver`). Responses cached via HTTP `Cache-
 Control` headers. No Python Trac plugin, no XML-RPC.

 == Proposed Endpoints ==

 === `ticket/` (cache: 5 min) ===

 The central endpoint. Single call returns structured JSON with:
  * '''Metadata''' — id, summary, status, type, reporter, owner, milestone,
 priority, severity, component, keywords, resolution, opened/modified dates
  * '''Comments''' (last N) — id, author, date, text
  * '''Changelog''' (keyword + milestone changes) — field, author, date,
 old/new values, linked comment ID
  * '''Attachments''' — filename, author, date, size

 {{{
 ?trac=core|meta&ticket=12345
 }}}

 === `contributors/` (cache: 24h) ===

 Unified contributor map: `username` → `{ name, profile_url, role,
 authority_level }`. Merges three currently separate sources:
  * `wpTracContributorLabels` (committers, lead devs — currently in `site-
 specific.html`)
  * Component maintainer profiles (100+ profiles from
 [https://make.wordpress.org/core/components/ make/core/components])
  * Role hierarchy (Project Lead → Lead Developer → Core Committer →
 Component Maintainer → Individual Contributor)

 === `keywords/` (cache: 24h) ===

 Keyword definitions: `keyword` → `{ category, label, description, usage,
 critical }`. Sourced from the
 [https://make.wordpress.org/core/handbook/contribute/trac/keywords/ Core
 Handbook]. Categories: patch, testing, feedback, design, docs, review,
 screenshots, status.

 === `components/` (cache: 24h) ===

 Component-to-maintainers mapping: `component` → `[{ username, name,
 profile_url, role }]`. Sourced from
 [https://make.wordpress.org/core/components/ make/core/components].
 Optional filter: `?component=Media`.

 === `releases/` (cache: 24h) ===

 Release schedule: `version` → `{ milestones: [{ name, date, type }] }`.
 Types: alpha, beta, RC, final.

 == Phase 2 — UI Enhancements (separate ticket) ==

 Once the API is in place, a follow-up ticket will propose native Trac UI
 features including: sticky ticket summary, role badges and comment
 highlighting, keyword change timeline, milestone history with punt
 detection, component maintainers, release schedule countdown, keyword
 explanations, and authority legend. See the [https://youtu.be/lEzFKuSF-lg
 video demo] for a preview of these features.

 == Resources ==

  * [https://github.com/juanma-wp/wp-trac-triager Extension repo (proof of
 concept)]
  * [https://youtu.be/lEzFKuSF-lg Video demo]
  * [https://juanma.codes/2026/02/16/wp-trac-triager-a-chrome-extension-
 for-wordpress-core-ticket-triage/ Blog post with context]

-- 
Ticket URL: <https://meta.trac.wordpress.org/ticket/8202>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org


More information about the wp-meta mailing list