[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