[{"data":1,"prerenderedAt":2555},["ShallowReactive",2],{"homepage-latest-articles":3,"$fwZ3YFPJ4zKk2SfaA9AxYfMMyaXN65XCdD0QaM2jwNFU":349,"$fXJ9zvFku99TZPm2erDx9uOkwLzLz0GC7vOFnZmKOwGw":408,"$fDwu9ehCBHgHfeg8RZBkb9AoSdpxNmQRujIbuBFhb7L8":501,"$fVIeW95ErlqY1Na4ajmk4GOnh2wtcOwpWVNHlfMWnO8k":653,"$ftnR_cX1JSZIHL-Rw1ERCu7391Wha6vfC2LOw2IUfC_I":805,"$fI13NoyhCd_BB8nFboNtyIpcCQd5YOrx8IEv3hAy0rVE":2274},[4,114,212,315],{"id":5,"title":6,"articleType":7,"categories":8,"date":12,"description":13,"extension":14,"meta":15,"paragraphs":16,"path":109,"readingTime":110,"sitemap":111,"stem":112,"__hash__":113},"articleEntries\u002Farticles-data\u002Fdrupal-site-settings-over-jsonapi-consumer-20260826.json","Drupal site settings over JSON:API, per consumer","Blog post",[9,10,11],"Drupal","Druxt","Planet Drupal","2026-08-26T19:20:00+10:00","Run the same decoupled frontend twice with two consumer IDs and get two differently branded sites. Decoupled Settings serves the site and theme config Drupal already holds over JSON:API, with per-consumer overrides. Four years ago I guessed the answer would be Consumers plus theme settings. Turns out it was.","json",{},[17,27,33,39,71,81,94,100],{"type":18,"layout":19,"regions":20},"section","layout_onecol",{"content":21},[22,25],{"type":23,"html":24},"text_formatted","\u003Cp>In April 2022 I wrote about \u003Ca href=\"\u002Fwriting\u002Fdecoupling-configuration-config-pages-20220412\">decoupling configuration with Config Pages\u003C\u002Fa>, and ended it with a guess at where I'd go next:\u003C\u002Fp>\n\n\u003Cblockquote>\u003Cp>One of my future experiments with Druxt will be to look at the options of using the Drupal Consumers module alongside Drupal theme settings as a solution.\u003C\u002Fp>\u003C\u002Fblockquote>",{"type":23,"html":26},"\u003Cp>That experiment is now a module. \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_settings\">Decoupled Settings\u003C\u002Fa> serves the site and theme configuration Drupal already holds over JSON:API, and lets every frontend override just the values it needs. It went up on Drupal.org this week.\u003C\u002Fp>",{"type":18,"title":28,"layout":19,"regions":29},"What core doesn't give you",{"content":30},[31],{"type":23,"html":32},"\u003Cp>Core's JSON:API is an entity API. Content entities and config entities alike, so node types, image styles and views are all in there. What it has never exposed is simple configuration, and there's a good argument that it shouldn't by default, because plenty of what sits in \u003Ccode>system.site\u003C\u002Fcode> is nobody's business.\u003C\u002Fp>\n\n\u003Cp>But a decoupled frontend still needs the boring stuff:\u003C\u002Fp>\n\n\u003Cul>\u003Cli>The site name, for the document title\u003C\u002Fli>\n\u003Cli>The slogan\u003C\u002Fli>\n\u003Cli>The logo and the favicon\u003C\u002Fli>\n\u003Cli>The front page path, so the router knows what \"home\" means\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>So every decoupled build solves it locally, and most of the ways to solve it end up keeping a second copy of the site name somewhere.\u003C\u002Fp>",{"type":18,"title":34,"layout":19,"regions":35},"Isn't that what Config Pages is for?",{"content":36},[37],{"type":23,"html":38},"\u003Cp>Config Pages is for settings \u003Cem>you\u003C\u002Fem> invent: define a type, add the fields your app needs, done. That job hasn't changed, and it's still on my sites.\u003C\u002Fp>\n\n\u003Cp>Where it gets awkward is settings Drupal already stores. Model the site name as a field on a Config Page and the site name exists in two places, and something has to keep them in step, and sooner or later something won't.\u003C\u002Fp>",{"type":18,"title":40,"layout":19,"regions":41},"How it works",{"content":42},[43,45,52,54,60,62,66,69],{"type":23,"html":44},"\u003Cp>So the module doesn't store settings. It reads them from the config objects that already hold them, and a consumer stores only what it changes.\u003C\u002Fp>",{"type":46,"alt":47,"caption":48,"width":49,"height":50,"src":51},"media","The per-consumer overrides form for a consumer named Partner Portal, filtered to system.site. Columns are Setting, Inherited value, Override and Value for this consumer. system.site:name and system.site:slogan are ticked and overridden to 'Partner Portal' and 'Same code, different consumer'; langcode, page.403, page.404 and page.front are unticked and inherited.","\u003Cp>Tick a setting to override it for this consumer. Everything unticked keeps following the site.\u003C\u002Fp>",1336,1022,"\u002Fimages\u002Fwriting\u002Fdecoupled-settings-consumer-overrides.png",{"type":23,"html":53},"\u003Cp>Tick a setting and it's yours. Leave it alone and it keeps following the site. Tick it and leave the value blank and that frontend doesn't show a slogan at all, which is a different thing again from clearing the override and going back to inheriting.\u003C\u002Fp>\n\n\u003Cp>What's exposed at all is bounded twice: the config objects you list, and within those, the keys typed config schema declares. On install that's \u003Ccode>system.site\u003C\u002Fcode> plus the active theme, and both of \u003Ccode>system.site\u003C\u002Fcode>'s email keys ship excluded. The settings form shows exactly how wide the exposure is, unsaved changes included, so you can trim it to the keys you want before anything ships.\u003C\u002Fp>",{"type":46,"alt":55,"caption":56,"width":57,"height":58,"src":59},"The Decoupled Settings configuration form: an Exposed configuration list containing system.site, a checkbox to expose the active theme settings, an Excluded settings box listing system.site:mail and system.site:mail_notification, and a 'What a frontend will read' table showing each setting with its global value.","\u003Cp>The exposure list, the keys it holds back, and what a frontend gets from what's left. Filtered to \u003Ccode>system.site\u003C\u002Fcode> here, so the theme's fourteen keys aren't in shot.\u003C\u002Fp>",1016,1358,"\u002Fimages\u002Fwriting\u002Fdecoupled-settings-exposure-form.png",{"type":23,"html":61},"\u003Cp>Reading it is one GET:\u003C\u002Fp>",{"type":63,"title":64,"code":65},"code","Reading settings as a consumer","curl \"https:\u002F\u002Fdrupal.example.com\u002Fjsonapi\u002Fdecoupled\u002Fsettings?consumerId=partner_frontend\"",{"type":63,"title":67,"code":68},"Abbreviated: 7 of the 23 keys, otherwise as returned","{\n  \"data\": {\n    \"type\": \"decoupled_settings--settings\",\n    \"id\": \"decoupled-settings\",\n    \"attributes\": {\n      \"settings\": {\n        \"system.site\": {\n          \"name\": \"Partner Portal\",\n          \"slogan\": \"Same code, different consumer\",\n          \"page\": { \"front\": \"\u002Fnode\" }\n        },\n        \"olivero.settings\": {\n          \"favicon\": { \"url\": \"\u002Fcore\u002Fthemes\u002Folivero\u002Ffavicon.ico\", \"use_default\": true },\n          \"logo\": { \"url\": \"\u002Fcore\u002Fthemes\u002Folivero\u002Flogo.svg\", \"use_default\": true }\n        }\n      },\n      \"consumer\": \"partner_frontend\"\n    }\n  }\n}",{"type":23,"html":70},"\u003Cp>The logo and favicon come back as resolved URLs, through core's own theme settings resolution and its fallbacks. Responses collect the config cache tags of every object that contributed, so an editor changing the site name invalidates them with nobody writing a hook.\u003C\u002Fp>\n\n\u003Cp>With \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fsimple_oauth\">Simple OAuth\u003C\u002Fa> it's simpler still: a client credentials token identifies the consumer by itself, no header and no query parameter, because the OAuth client and the settings consumer are the same entity.\u003C\u002Fp>",{"type":18,"title":72,"layout":19,"regions":73},"One backend, many frontends",{"content":74},[75,77,79],{"type":23,"html":76},"\u003Cp>A consumer is a name on a request. Point two builds of the same frontend at one backend, have each identify as a different consumer, and each comes up as its own site: its own name, its own slogan, its own logo and favicon. Nothing in the code differs between them, only an environment variable.\u003C\u002Fp>",{"type":23,"html":78},"\u003Cp>Read the settings at build time and bake them into the artifact, and the artifact doesn't depend on Drupal at runtime, at the cost of a rebuild whenever a setting changes. Read them at runtime and the cache tags start earning their keep. Either way it's one request, so it matters very little what the frontend is built with.\u003C\u002Fp>\n\n\u003Cp>A consumer gets its own name, slogan, front page and branding assets. Menus, regions, layouts and per-market content are still yours to solve.\u003C\u002Fp>",{"type":23,"html":80},"\u003Cp>If you're on Druxt, a module that wires all of this into the build is close behind, for the current Druxt release. It identifies the app as a consumer, reads the settings, and applies the site name and favicon to the document head. It also bakes the whole resolved set into Nuxt's runtime config, so \u003Ccode>$config.decoupledSettings['system.site'].name\u003C\u002Fcode> works anywhere in the app.\u003C\u002Fp>",{"type":18,"title":82,"layout":19,"regions":83},"Where it stands",{"content":84},[85,87,89,91],{"type":23,"html":86},"\u003Cp>108 tests and 492 assertions across unit, kernel and functional coverage, green on Drupal 10 and Drupal 11. The first pipeline on drupalcode.org came back green across all eight jobs on its first run, which never happens.\u003C\u002Fp>",{"type":23,"html":88},"\u003Cp>It's \u003Cstrong>1.0.0-beta2\u003C\u002Fstrong>. Drupal's security advisory policy covers stable releases only, and the response shape can still move before 1.0. Adopt now and you're the second consumer of this API, which means you get a say in that shape while it's still soft.\u003C\u002Fp>\n\n\u003Cp>Overrides live on the consumer entity, so they're content rather than config, and they stay in the database rather than travelling with \u003Ccode>drush cim\u003C\u002Fcode>. Multilingual works one way today: exposed values follow language negotiation, but an override applies in every language, so you can translate a setting or brand it per consumer, not both yet.\u003C\u002Fp>",{"type":23,"html":90},"\u003Cp>If any of that is useful, the beta is out now:\u003C\u002Fp>",{"type":63,"title":92,"code":93},"Install","composer require 'drupal\u002Fdecoupled_settings:^1.0@beta'\ndrush en decoupled_settings",{"type":18,"title":95,"layout":19,"regions":96},"What next?",{"content":97},[98],{"type":23,"html":99},"\u003Cp>File (Field) Paths, still next up, and the Druxt half of this behind it.\u003C\u002Fp>\n\n\u003Cp>If you're running decoupled Drupal already, how are you getting the site name into your frontend today? I'd like to know, while the API shape is still soft enough to change.\u003C\u002Fp>",{"type":18,"layout":19,"regions":101},{"content":102},[103],{"type":104,"description":105,"url":106,"gitpod":107,"drupalUrl":108},"repository","\u003Cp>Source on GitHub, project page and issue queue on Drupal.org. If your projects lean on modules like this one, sponsoring is what keeps them actively maintained.\u003C\u002Fp>","https:\u002F\u002Fgithub.com\u002FDecipher\u002Fdecoupled_settings",false,"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_settings","\u002Fwriting\u002Fdrupal-site-settings-over-jsonapi-consumer-20260826","4 min",{"loc":109},"articles-data\u002Fdrupal-site-settings-over-jsonapi-consumer-20260826","AfWvvQeLG8E0HK9wKF51FKaoMngbUKR6PfbLJ8v2H6s",{"id":115,"title":116,"articleType":7,"categories":117,"date":118,"description":119,"extension":14,"meta":120,"paragraphs":121,"path":207,"readingTime":208,"sitemap":209,"stem":210,"__hash__":211},"articleEntries\u002Farticles-data\u002Fjsonapi-views-120-20260812.json","JSON:API Views 8.x-1.2",[9,10,11],"2026-08-12T20:00:00+10:00","JSON:API gets you entities, not listings - JSON:API Views exposes any Drupal View as a JSON:API resource. 8.x-1.2: faster route building on view-heavy sites, cache headers that actually invalidate, a corrected preview URL, and a reworked OpenAPI fix.",{},[122,131,161,177,183],{"type":18,"layout":19,"regions":123},{"content":124},[125,127,129],{"type":23,"html":126},"\u003Cp>JSON:API on its own gets you decoupled entities: fetch a node, fetch a set of IDs, done. It doesn't get you the filtering, sorting and pagination that most real content listings actually need - a list of articles by tag, a paginated product catalogue, an events calendar with a date filter. You either reimplement that logic on the frontend, or Drupal ships a hand-written custom resource for every list on the site. That gap is the same regardless of what's rendering on the other end, React and Next.js, Vue and Nuxt, or anything else that can call an API.\u003C\u002Fp>\n\n\u003Cp>JSON:API Views closes it: whatever a View can already do, a decoupled frontend can ask for over JSON:API, using the access checks and query logic the view already has, no separate endpoint to write or maintain. It's also, not coincidentally, why I still maintain the module at all: it's the backend half of DruxtViews, the piece that makes Views work in Druxt, my own Nuxt-based decoupled Drupal framework.\u003C\u002Fp>",{"type":23,"html":128},"\u003Cp>8.x-1.2 lands six fixes, five of which already had a patch sitting in the queue: route building that's dramatically faster on sites with a lot of exposed views, a preview URL that finally matches what an exposed filter is actually configured to accept, a caching fix so front-end caches actually invalidate, a routing crash tied to numeric bundle names, and a reworked fix for an OpenAPI export crash. Just fixes, no updating required.\u003C\u002Fp>",{"type":23,"html":130},"\u003Cp>JSON:API Views isn't mine originally. \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fu\u002Fpixelwhip\">pixelwhip\u003C\u002Fa> built the module and shipped its first releases; I took over maintenance after that, and 8.x-1.2 is the first release I've cut on the 1.x line. Thanks to pixelwhip for building the thing in the first place.\u003C\u002Fp>",{"type":18,"title":132,"layout":19,"regions":133},"If you haven't used it before",{"content":134},[135,137,143,145,151,153,156,158],{"type":23,"html":136},"\u003Cp>Views is what most Drupal sites already lean on for anything with filtering, sorting or pagination baked in: a list of articles by tag, a paginated product catalogue, an events calendar with a date filter. JSON:API on its own gets a decoupled frontend entities, but it doesn't know about any of that. JSON:API Views bridges the two: enable it on a display and Drupal generates a route for it under \u003Ccode>\u002Fjsonapi\u002Fviews\u002F{view_id}\u002F{display_id}\u003C\u002Fcode>, backed by the same query, filters and access checks the display already has.\u003C\u002Fp>",{"type":46,"alt":138,"caption":139,"width":140,"height":141,"src":142},"The 'Expose via JSON:API' checkbox on a view display's settings, checked by default, with the description 'Controls exposure the view with JSON:API.'","Every display ships exposed by default. One checkbox turns it off (for now, see What's next below).",960,254,"\u002Fimages\u002Fwriting\u002Fjsonapi-views-expose-checkbox.png",{"type":23,"html":144},"\u003Cp>The preview panel in the Views UI picks it up too, once a display is exposed: the same query info table that already shows you the page's path grows a JSON:API Views row with the live URL for that display, arguments and exposed filter values included.\u003C\u002Fp>",{"type":46,"alt":146,"caption":147,"width":148,"height":149,"src":150},"The Views UI preview panel's query info table, showing Title, Path, and a JSON:API Views row linking to \u002Fjsonapi\u002Fviews\u002Ffrontpage\u002Fpage_1","The generated JSON:API endpoint for a view, right there in the Views UI preview panel.",886,137,"\u002Fimages\u002Fwriting\u002Fjsonapi-views-preview-url.png",{"type":23,"html":152},"\u003Cp>Hit that URL and it's a normal JSON:API response, whatever content types the view actually mixes together:\u003C\u002Fp>",{"type":63,"title":154,"code":155},"GET \u002Fjsonapi\u002Fviews\u002Ffrontpage\u002Fpage_1","{\n  \"data\": [\n    {\n      \"type\": \"node--page\",\n      \"id\": \"19e113d5-c838-43e1-ba75-1def5466e3de\",\n      \"attributes\": {\n        \"title\": \"About this site\",\n        \"status\": true,\n        \"created\": \"2026-08-09T09:07:37+00:00\"\n      }\n    },\n    {\n      \"type\": \"node--article\",\n      \"id\": \"62c2d25d-93c9-438b-8bdf-a75b69d05dc5\",\n      \"attributes\": {\n        \"title\": \"Building decoupled Views with jsonapi_views\",\n        \"status\": true,\n        \"created\": \"2026-08-08T10:18:06+00:00\"\n      }\n    }\n  ],\n  \"meta\": { \"count\": \"2\" }\n}",{"type":23,"html":157},"\u003Cp>On the frontend, \u003Ca href=\"https:\u002F\u002Fdruxtjs.org\">Druxt\u003C\u002Fa>'s \u003Ccode>&lt;DruxtView&gt;\u003C\u002Fcode> component renders that exact route as Vue components, filters, sorting and pagination included, no custom resource on either side. It's the frontend half of the same pipeline. DruxtViews targets Nuxt 2 today; a Nuxt 3\u002F4-compatible Druxt is actively in progress, more on that soon.\u003C\u002Fp>",{"type":63,"title":159,"code":160},"Render a View with Druxt","\u003CDruxtView view-id=\"frontpage\" display-id=\"page_1\" \u002F>",{"type":18,"title":162,"layout":19,"regions":163},"What's fixed",{"content":164},[165,167,169,171,173,175],{"type":23,"html":166},"\u003Cp>Five bug fixes, with a big thanks to the community whose patches made most of them possible:\u003C\u002Fp>",{"type":23,"html":168},"\u003Cp>\u003Cstrong>Cache headers weren't being set\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fjsonapi_views\u002Fissues\u002F3202583\">#3202583\u003C\u002Fa>, patch by \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fu\u002Fyahyaalhamad\">yahyaalhamad\u003C\u002Fa>). View cache tags weren't reaching the JSON:API response's headers, so a page cache in front of the site never invalidated when the underlying content changed. Fixed by pushing the tags onto the response's bubbleable metadata.\u003C\u002Fp>",{"type":23,"html":170},"\u003Cp>\u003Cstrong>Route building got slow with a lot of exposed views\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fjsonapi_views\u002Fissues\u002F3484714\">#3484714\u003C\u002Fa>, patch by \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fu\u002Fjacobbell84\">jacobbell84\u003C\u002Fa>). Every rebuild looked up each view's resource type from scratch, once per view per entity type. Caching it per entity type instead: 637 calls to \u003Ccode>ResourceTypeRepository::get()\u003C\u002Fcode> down to 13, at the scale the issue reported.\u003C\u002Fp>",{"type":23,"html":172},"\u003Cp>\u003Cstrong>Numeric bundle machine names broke routing entirely\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fjsonapi_views\u002Fissues\u002F3503402\">#3503402\u003C\u002Fa>, patch by \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fu\u002Fchodec\">chodec\u003C\u002Fa>). An all-digit bundle machine name threw an \u003Ccode>AssertionError\u003C\u002Fcode> during route building instead of returning a route. Cast to string before the lookup, fixed.\u003C\u002Fp>",{"type":23,"html":174},"\u003Cp>\u003Cstrong>The preview URL used the wrong query parameter\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fjsonapi_views\u002Fissues\u002F3376193\">#3376193\u003C\u002Fa>, patch by \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fu\u002Fjeffschuler\">jeffschuler\u003C\u002Fa>). The Views UI preview panel was reading an exposed filter's field name instead of its configured identifier, breaking any view where you'd renamed a filter to something readable. It now reads the identifier the display is actually configured with.\u003C\u002Fp>",{"type":23,"html":176},"\u003Cp>\u003Cstrong>OpenAPI schema export crashed with jsonapi_views enabled\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fjsonapi_views\u002Fissues\u002F3265781\">#3265781\u003C\u002Fa>). jsonapi_views now reports a view's real \u003Ccode>ResourceType\u003C\u002Fcode> on the route when its entity type has exactly one bundle, so OpenAPI describes it correctly; multi-bundle views are left alone.\u003C\u002Fp>",{"type":18,"title":178,"layout":19,"regions":179},"What's next",{"content":180},[181],{"type":23,"html":182},"\u003Cp>This is part of the same push that got Field Tokens 2.0.0 and Custom Formatters 4.1.0 out the door: working through my modules one at a time and actually clearing the backlog, not just triaging it. There's more coming for JSON:API Views too, tighter access control at the route level, more performance headroom for sites well past a hundred exposed views, and eventually a 2.0.x that flips exposure from opt-out to opt-in. File (Field) Paths is next up though, tens of thousands of sites and still sitting in RC ahead of a stable 1.0.\u003C\u002Fp>",{"type":18,"layout":19,"regions":184},{"content":185},[186,197,199,201,205],{"type":187,"title":188,"content":189},"jumbotron","If your project depends on this work",[190,192],{"type":23,"html":191},"\u003Cp>JSON:API Views, the wider Druxt ecosystem, the other modules I maintain - I build all of it in the open, and sponsorship is what keeps it actively maintained.\u003C\u002Fp>",{"type":193,"link":194},"link",{"href":195,"label":196},"https:\u002F\u002Fgithub.com\u002Fsponsors\u002FDecipher","Sponsor on GitHub",{"type":23,"html":198},"\u003Cp>If any of this is useful to you, 8.x-1.2 is out now:\u003C\u002Fp>",{"type":63,"code":200},"composer require 'drupal\u002Fjsonapi_views:^1.2'",{"type":104,"description":202,"url":203,"gitpod":107,"drupalUrl":204},"Source on GitHub, project page on Drupal.org, patches welcome in the issue queue. If your project depends on this, sponsoring keeps it actively maintained.","https:\u002F\u002Fgithub.com\u002FDecipher\u002Fjsonapi_views","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fjsonapi_views",{"type":23,"html":206},"\u003Cp>What's your decoupled stack - are you hand-rolling a listing endpoint for every view, or reaching for something like this? I'd genuinely like to know.\u003C\u002Fp>","\u002Fwriting\u002Fjsonapi-views-120-20260812","6 min",{"loc":207},"articles-data\u002Fjsonapi-views-120-20260812","IsRHTHtqIKYhqX2U3Spkek9suuSbvuZjZBeYs_Gog8c",{"id":213,"title":214,"articleType":7,"categories":215,"date":216,"description":217,"extension":14,"meta":218,"paragraphs":219,"path":311,"readingTime":110,"sitemap":312,"stem":313,"__hash__":314},"articleEntries\u002Farticles-data\u002Fcustom-formatters-410-20260731.json","Custom Formatters 4.1.0",[9,11],"2026-07-31T13:30:00+10:00","Nearly a decade after stepping away, 4.1.0 picks the module back up and brings back formatter settings, live preview, a CodeMirror editor, and Devel Generate support, with more to come.",{},[220,227,252,264,270,281,287,300],{"type":18,"layout":19,"regions":221},{"content":222},[223,225],{"type":23,"html":224},"\u003Cp>Custom Formatters is old. I started it in 2009, my first year building seriously for Drupal, and shipped it through Drupal 6 and 7. Then in late 2016, not long after the first Drupal 8 alpha, I stepped away (work, life, the usual reasons) and for the best part of a decade it wasn't mine to ship.\u003C\u002Fp>\n\n\u003Cp>It didn't die, though, and that's almost entirely down to one person. \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fu\u002Fpodarok\">Andrii Podanenko\u003C\u002Fa> (\u003Cem>podarok\u003C\u002Fem>), backed by \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fitcare\">ITCare\u003C\u002Fa> and the \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fopen-y\">Open Y\u003C\u002Fa> distribution, carried it through the Drupal 8 beta, the Drupal 10 port, and the start of the Drupal 11 line, essentially single-handedly, for years. Huge thanks to Andrii for looking after it all that time. I've picked the 4.1.x line back up alongside him, and 4.1.0 is the first release to come out of that.\u003C\u002Fp>",{"type":23,"html":226},"\u003Cp>4.1.0 is, deliberately, a bit of a nostalgia trip. A handful of the things that made the module worth reaching for in the first place quietly went missing during the Drupal 8 port (formatter settings, live preview, a real code editor, Devel Generate support), and this release brings four of them back. There's new stuff too.\u003C\u002Fp>",{"type":18,"title":228,"layout":19,"regions":229},"Formatter settings",{"content":230},[231,233,239,241,247,249],{"type":23,"html":232},"\u003Cp>The old approach leaned on the Form Builder module, a separate drag-and-drop form builder bolted on the side. You'd end up with a real settings form in theory, but what it actually generated behind the scenes was a block of PHP form arrays that got \u003Ccode>eval()\u003C\u002Fcode>'d at render time. Clever for 2011. Not exactly integrated, and it quietly disappeared in the Drupal 8 port along with a few other things.\u003C\u002Fp>\n\n\u003Cp>4.1.0 finally replaces it. Formatter settings are just fields now, attached to a formatter the same way you'd attach fields to any content type: a text field for a CSS class, a boolean for whether to link to the entity, whatever the formatter needs. In the template it's \u003Ccode>settings.field_name\u003C\u002Fcode> for the rendered value, or \u003Ccode>raw_settings.field_name\u003C\u002Fcode> if you want it unformatted.\u003C\u002Fp>",{"type":46,"src":234,"alt":235,"caption":236,"width":237,"height":238},"\u002Fimages\u002Fwriting\u002Fcustom-formatters-settings-fields.png","The Manage Fields tab on a Custom Formatters formatter, listing two attached fields: CSS class (Short text) and Link to entity (Boolean)","Attached like any other field.",1198,298,{"type":23,"html":240},"\u003Cp>You attach the fields the normal way, and configure them per placement right from Manage Display, the same way you'd configure an image style:\u003C\u002Fp>",{"type":46,"src":242,"alt":243,"caption":244,"width":245,"height":246},"\u002Fimages\u002Fwriting\u002Fcustom-formatters-settings-manage-display.png","The inline formatter settings on a Manage Display row for the Linkable title formatter, with a CSS class field set to text-lg and a Link to entity toggle switched on","Configured the same way as an image style.",810,463,{"type":23,"html":248},"\u003Cp>The module ships its own example of this, a Twig formatter called \"Linkable title\" that wraps the field value in a link and applies whatever class you've given it:\u003C\u002Fp>",{"type":63,"title":250,"code":251},"Example: Linkable title (Twig + settings)","{% for item in items %}\n  {% set class = settings.field_css_class ? ' class=\"' ~ settings.field_css_class|clean_class ~ '\"' : '' %}\n  {% if settings.field_link and settings.field_link|lower not in ['no', 'off', 'false', '0', ''] %}\n    \u003Ca href=\"{{ entity.id ? path('entity.node.canonical', {'node': entity.id}) : '#' }}\"{{ class|raw }}>{{ item.value }}\u003C\u002Fa>\n  {% else %}\n    \u003Cspan{{ class|raw }}>{{ item.value }}\u003C\u002Fspan>\n  {% endif %}\n{% endfor %}",{"type":18,"title":253,"layout":19,"regions":254},"Live preview",{"content":255},[256,258],{"type":23,"html":257},"\u003Cp>Settings only matter if you can see what they do, so live preview is back too, and it's wired into settings. Pick an entity, fill in the settings, and watch the output render right there on the edit form. The panel gives you per-engine debug output alongside the render itself (a variables dump for Twig and PHP, the raw HTML for HTML+Token), so you can see exactly what reached the template.\u003C\u002Fp>",{"type":46,"src":259,"alt":260,"caption":261,"width":262,"height":263},"\u002Fimages\u002Fwriting\u002Fcustom-formatters-settings-hero.png","The formatter edit form showing the syntax-highlighted CodeMirror editor for the Linkable title Twig template above a live preview panel, with CSS class set to text-lg and Link to entity enabled, a rendered link to a node, and a debug dump showing the settings and raw_settings values","Fill in the settings, see it render.",1312,1656,{"type":18,"title":265,"layout":19,"regions":266},"Devel Generate",{"content":267},[268],{"type":23,"html":269},"\u003Cp>And if nothing on the site has the right field type yet (say you're building an image formatter before any image field exists), Devel Generate support steps in. It builds a throwaway sample entity for the preview instead of leaving it blank, so you're never creating a dummy node just to see your formatter render.\u003C\u002Fp>",{"type":18,"title":271,"layout":19,"regions":272},"A real code editor",{"content":273},[274,276],{"type":23,"html":275},"\u003Cp>The last of the four returning features is the one I'm most pleased with: a real code editor. The template field is now a CodeMirror editor, syntax-highlighted with HTML-aware auto-closing tags, instead of a plain textarea. More usefully, its autocomplete actually knows what each engine supports. Type \u003Ccode>{{\u003C\u002Fcode> in a Twig formatter and it offers the variables in scope; type \u003Ccode>[\u003C\u002Fcode> in an HTML+Token formatter and it offers Drupal tokens, including the \u003Ccode>[formatter_setting:...]\u003C\u002Fcode> ones; \u003Ccode>Ctrl+Space\u003C\u002Fcode> gives you context-appropriate suggestions in any engine.\u003C\u002Fp>",{"type":46,"src":277,"alt":278,"caption":279,"width":237,"height":280},"\u002Fimages\u002Fwriting\u002Fcustom-formatters-autocomplete.png","The CodeMirror editor on a Twig formatter with the autocomplete dropdown open after typing {{, offering the in-scope variables items, entity, langcode, settings and raw_settings","Type {{ in a Twig formatter: autocomplete knows what's in scope.",633,{"type":18,"title":282,"layout":19,"regions":283},"Also back",{"content":284},[285],{"type":23,"html":286},"\u003Cp>A few smaller things are back as well: a Save &amp; Edit button, so you're not bounced back to the formatter list every time you tweak something; and an \u003Ccode>entity\u003C\u002Fcode> variable in Twig templates, so a formatter can reach the parent entity directly instead of only the field it's attached to. Drupal 11 support is locked in.\u003C\u002Fp>\n\n\u003Cp>Integration with the \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Finsert\">Insert\u003C\u002Fa> module is back too. Any formatter targeting an image, file, or entity reference field is automatically exposed as an Insert style and can be dropped straight into a WYSIWYG.\u003C\u002Fp>",{"type":18,"title":288,"layout":19,"regions":289},"Connected to Field Tokens",{"content":290},[291,293],{"type":23,"html":292},"\u003Cp>If you're running Field Tokens as well, this connects to something I fixed there too. The \u003Ccode>[formatted_field-*]\u003C\u002Fcode> integration, which lets a token render a field through one of these formatters, broke during Field Tokens' own Drupal 8 port and stayed broken for years. 2.0.0 rebuilt that data provider from scratch, so whatever you build here, settings included, is reachable from a token again.\u003C\u002Fp>",{"type":294,"title":295,"description":296,"link":297},"card","Field Tokens 2.0.0","Wildcard deltas, dot notation for nested formatter settings, and a restored Custom Formatters integration.",{"href":298,"label":299},"\u002Fwriting\u002Ffield-tokens-200-20260722","Read the Field Tokens 2.0.0 post",{"type":18,"layout":19,"regions":301},{"content":302},[303,305,307],{"type":23,"html":304},"\u003Cp>If any of this is useful to you, 4.1.0 is out now:\u003C\u002Fp>",{"type":63,"code":306},"composer require 'drupal\u002Fcustom_formatters:^4.1'",{"type":104,"description":308,"url":309,"gitpod":107,"drupalUrl":310},"Source on GitHub, the full project page on Drupal.org, and if it's saved you some time, sponsorship is always appreciated.","https:\u002F\u002Fgithub.com\u002FDecipher\u002Fcustom_formatters","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fcustom_formatters","\u002Fwriting\u002Fcustom-formatters-410-20260731",{"loc":311},"articles-data\u002Fcustom-formatters-410-20260731","b94HneyZbDy5y7s94XfcKeA2cLF4sAIZQ_Wkloh7mv8",{"id":316,"title":295,"articleType":7,"categories":317,"date":318,"description":319,"extension":14,"meta":320,"paragraphs":321,"path":298,"readingTime":345,"sitemap":346,"stem":347,"__hash__":348},"articleEntries\u002Farticles-data\u002Ffield-tokens-200-20260722.json",[9,11],"2026-07-23T09:00:00+10:00","Wildcard deltas, dot notation for nested formatter settings, and Drupal 11 support: what changed in the first stable 2.x release.",{},[322],{"type":18,"layout":19,"regions":323},{"content":324},[325,327,330,332,335,337,339,343],{"type":23,"html":326},"\u003Cp>I lose count of how many times I've reached for Field Tokens on a project, then hit the same wall: a multi-value image field, and no clean way to say \"give me all of them, formatted\" in a single token. You could grab one delta at a time, or write custom PHP to loop over the field yourself, but there was no in-between.\u003C\u002Fp>\n\n\u003Cp>If you haven't used it: \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffield_tokens\">Field Tokens\u003C\u002Fa> adds two token types Drupal core doesn't ship with, formatted field tokens (render a field value through a chosen formatter) and field property tokens (reach into a field's raw properties, like an image's alt text or a link's URL). It's one of those modules that quietly becomes load-bearing on a token-heavy site the moment you need either.\u003C\u002Fp>\n\n\u003Cp>2.0.0 finally gives that in-between a real syntax. The delta segment of a formatted field token now accepts a single index (\u003Ccode>0\u003C\u002Fcode>), a comma list (\u003Ccode>0,2,4\u003C\u002Fcode>), a range (\u003Ccode>0-2\u003C\u002Fcode>), a mix of the two (\u003Ccode>0-2,4\u003C\u002Fcode>), a wildcard for every value (\u003Ccode>*\u003C\u002Fcode>), or nothing at all, which also means every value, with a configurable delimiter for however you want the output joined. So a multi-value image field, rendered through the \u003Ccode>thumbnail\u003C\u002Fcode> image style, all values at once, is just:\u003C\u002Fp>",{"type":63,"title":328,"code":329},"Wildcard delta, image style","[node:field_image-formatted:*:image:image_style-thumbnail]",{"type":23,"html":331},"\u003Cp>That's the whole token. No loop, no custom formatter, no falling back to a Twig template just to get every value out. The wildcard and range syntax came out of \u003Ca href=\"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffield_tokens\u002Fissues\u002F3267442\">issue #3267442\u003C\u002Fa>.\u003C\u002Fp>\n\n\u003Cp>The other half of 2.0.0 is dot notation, for two separate things. First, reaching into a nested formatter setting: most image style and responsive image formatters bury their real configuration a level or two deep, and before 2.0.0 you simply couldn't address that from a token. Now you can chain keys with a dot:\u003C\u002Fp>",{"type":63,"title":333,"code":334},"Nested formatter setting","[node:field_image-formatted:0:image:image_loading.loading-lazy]",{"type":23,"html":336},"\u003Cp>Second, the same dot notation works on field property tokens, so a nested key inside a property value is addressable the same way, rather than only ever returning the whole structure and leaving you to parse it yourself downstream.\u003C\u002Fp>\n\n\u003Cp>Custom Formatters integration is back too. The original data provider broke during the Drupal 8 port, which meant if you were using the Custom Formatters module to build your own formatter plugins, Field Tokens simply couldn't see them, and \u003Ccode>[formatted_field-*]\u003C\u002Fcode> tokens went quiet. 2.0.0 re-implements that data provider from scratch, so if you've been maintaining a workaround, you can retire it.\u003C\u002Fp>\n\n\u003Cp>And for anyone weighing Drupal 11 readiness before committing to a module: Field Tokens 2.0.0 declares \u003Ccode>^10.1 || ^11\u003C\u002Fcode>, so it's covered.\u003C\u002Fp>\n\n\u003Cp>If any of this solves a problem you've been working around:\u003C\u002Fp>",{"type":63,"code":338},"composer require 'drupal\u002Ffield_tokens:^2.0'",{"type":104,"description":340,"url":341,"gitpod":107,"drupalUrl":342},"\u003Cp>Source on GitHub, the full project page on Drupal.org, and if it's saved you some time, sponsorship is always appreciated.\u003C\u002Fp>","https:\u002F\u002Fgithub.com\u002FDecipher\u002Ffield_tokens","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffield_tokens",{"type":23,"html":344},"\u003Cp>This one's part of a bigger push I'm on at the moment: going back through my modules one at a time and getting them stabilised: real code coverage, CI that actually means something, releases that don't sit in RC for years. Field Tokens is the first of several I've got lined up, so expect more of this over the coming months.\u003C\u002Fp>","2 min",{"loc":298},"articles-data\u002Ffield-tokens-200-20260722","EZUFMNfRN7oDoqBO_4m9QWTH48qbbcv8-Wt9lg5q6i0",{"list":350},[351,356,361,366,371,378,385,391,400,403],{"title":352,"field_project_machine_name":353,"project_usage":354,"flag_project_star_user":-1},"Contextual server variables","context_server_vars",{"7.x-1.x":355},"2",{"title":357,"field_project_machine_name":358,"project_usage":359,"flag_project_star_user":-1},"Dindent","dindent",{"7.x-1.x":360},"5",{"title":362,"field_project_machine_name":363,"project_usage":364,"flag_project_star_user":-1},"famfamfam.com icons","famfamfam",{"7.x-1.x":365},9,{"title":367,"field_project_machine_name":368,"project_usage":369,"flag_project_star_user":-1},"Better sub-themes","better_subthemes",{"8.x-1.x":370},"1",{"title":372,"field_project_machine_name":373,"project_usage":374,"flag_project_star_user":-1},"File (Field) Paths","filefield_paths",{"6.x-2.x":370,"6.x-1.x":375,"7.x-1.x":376,"8.x-1.x":377},564,11532,17188,{"title":379,"field_project_machine_name":380,"project_usage":381,"flag_project_star_user":-1},"Field Tokens","field_tokens",{"7.x-1.x":382,"2.0.x":383,"8.x-1.x":384},429,363,"89",{"title":386,"field_project_machine_name":387,"project_usage":388,"flag_project_star_user":-1},"JSON:API Menu Items","jsonapi_menu_items",{"1.1.x":389,"1.2.x":390},6,3456,{"title":392,"field_project_machine_name":393,"project_usage":394,"flag_project_star_user":-1},"Custom Formatters","custom_formatters",{"6.x-1.x":395,"8.x-3.x":396,"4.1.x":397,"7.x-2.x":398,"4.0.x":399},43,86,381,2570,"57",{"title":401,"field_project_machine_name":402,"project_usage":-1,"flag_project_star_user":-1},"Decoupled Settings","decoupled_settings",{"title":404,"field_project_machine_name":405,"project_usage":406,"flag_project_star_user":-1},"Administration Menu select","admin_select",{"7.x-1.x":407,"6.x-1.x":370},187,{"list":409},[410,413,416,419,429,435,441,447,453,459,465,469,473,478,481,484,487,490,493,497],{"title":411,"field_project_machine_name":412,"project_usage":-1,"flag_project_star_user":-1},"SSI","ssi",{"title":414,"field_project_machine_name":415,"project_usage":-1,"flag_project_star_user":-1},"BitTorrent Sync fields","btsync_fields",{"title":417,"field_project_machine_name":418,"project_usage":-1,"flag_project_star_user":-1},"Druxt connect","druxt_connect",{"title":420,"field_project_machine_name":421,"project_usage":422,"flag_project_star_user":-1},"ImageField Tokens","imagefield_tokens",{"8.x-2.x":423,"3.0.x":424,"6.x-1.x":425,"7.x-1.x":426,"3.1.x":427,"3.2.x":428},250,17,130,2909,"157","696",{"title":430,"field_project_machine_name":431,"project_usage":432,"flag_project_star_user":-1},"Wysiwyg Fields","wysiwyg_fields",{"6.x-1.x":370,"7.x-2.x":433,"7.x-1.x":434},"8","29",{"title":436,"field_project_machine_name":437,"project_usage":438,"flag_project_star_user":-1},"DruxtJS","druxt",{"1.0.x":370,"1.1.x":439,"1.2.x":440},"3",178,{"title":442,"field_project_machine_name":443,"project_usage":444,"flag_project_star_user":-1},"Mobile Codes","mobile_codes",{"6.x-1.x":355,"6.x-2.x":445,"7.x-2.x":446},10,364,{"title":448,"field_project_machine_name":449,"project_usage":450,"flag_project_star_user":-1},"File Aliases","file_aliases",{"6.x-1.x":451,"7.x-1.x":452},33,64,{"title":454,"field_project_machine_name":455,"project_usage":456,"flag_project_star_user":-1},"Drag'n'Drop Uploads","dragndrop_uploads",{"6.x-1.x":457,"7.x-1.x":458},"7","37",{"title":460,"field_project_machine_name":461,"project_usage":462,"flag_project_star_user":-1},"Wysiwyg ImageField","wysiwyg_imagefield",{"6.x-1.x":463,"7.x-1.x":464},8,"60",{"title":466,"field_project_machine_name":467,"project_usage":468,"flag_project_star_user":-1},"Formatters for Node Reference fields","formatters4nodereference",{"6.x-1.x":439,"7.x-1.x":360},{"title":470,"field_project_machine_name":471,"project_usage":472,"flag_project_star_user":-1},"Formatter Settings","formatter_settings",{"6.x-1.x":360},{"title":474,"field_project_machine_name":475,"project_usage":476,"flag_project_star_user":-1},"Deep Zoom","deepzoom",{"7.x-1.x":477},20,{"title":479,"field_project_machine_name":480,"project_usage":-1,"flag_project_star_user":-1},"Hostmaster Reinstall","hostmaster_reinstall",{"title":482,"field_project_machine_name":483,"project_usage":-1,"flag_project_star_user":-1},"Provision Reinstall","provision_reinstall",{"title":485,"field_project_machine_name":486,"project_usage":-1,"flag_project_star_user":-1},"Hosting Reinstall","hosting_reinstall",{"title":488,"field_project_machine_name":489,"project_usage":-1,"flag_project_star_user":-1},"Render As","renderas",{"title":491,"field_project_machine_name":492,"project_usage":-1,"flag_project_star_user":-1},"Derivicon","derivicon",{"title":494,"field_project_machine_name":495,"project_usage":496,"flag_project_star_user":-1},"Contextual variables","context_variable",{"7.x-1.x":439},{"title":498,"field_project_machine_name":499,"project_usage":500,"flag_project_star_user":-1},"Contextual modules","context_module",{"7.x-1.x":439},{"list":502},[503,506,509,512,515,518,521,524,527,530,533,536,539,542,545,548,551,554,557,560,563,566,569,572,575,578,581,584,587,590,593,596,599,602,605,608,611,614,617,620,623,626,629,632,635,638,641,644,647,650],{"created":504,"url":505},"1788343885","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3045063#comment-16754995",{"created":507,"url":508},"1788343069","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3045063#comment-16754962",{"created":510,"url":511},"1788340410","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3432653#comment-16754902",{"created":513,"url":514},"1788340346","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3616606#comment-16754899",{"created":516,"url":517},"1788244103","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3035301#comment-16753337",{"created":519,"url":520},"1788132203","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3035301#comment-16751914",{"created":522,"url":523},"1787963893","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3419618#comment-16750632",{"created":525,"url":526},"1787898274","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3432653#comment-16749653",{"created":528,"url":529},"1787898260","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3432653#comment-16749652",{"created":531,"url":532},"1787897913","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3432653#comment-16749648",{"created":534,"url":535},"1787890622","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3616606#comment-16749586",{"created":537,"url":538},"1787889464","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3616606#comment-16749583",{"created":540,"url":541},"1787887387","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_settings\u002Fissues\u002F3619604#comment-16749580",{"created":543,"url":544},"1787886777","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_settings\u002Fissues\u002F3619603#comment-16749579",{"created":546,"url":547},"1787802107","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3569210#comment-16748329",{"created":549,"url":550},"1787794815","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3569210#comment-16748309",{"created":552,"url":553},"1787793869","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3569210#comment-16748306",{"created":555,"url":556},"1787793012","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_settings\u002Fissues\u002F3619391#comment-16748304",{"created":558,"url":559},"1787783005","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fcontrib_tracker\u002Fissues\u002F2683111#comment-16748252",{"created":561,"url":562},"1787782984","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fcontrib_tracker\u002Fissues\u002F2700763#comment-16748250",{"created":564,"url":565},"1787649595","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3419618#comment-16745649",{"created":567,"url":568},"1787628485","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdruxt\u002Fissues\u002F3312152#comment-16745255",{"created":570,"url":571},"1787613697","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdruxt\u002Fissues\u002F3618677#comment-16745185",{"created":573,"url":574},"1787612239","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdruxt\u002Fissues\u002F3618675#comment-16745160",{"created":576,"url":577},"1787556438","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3015137#comment-16744134",{"created":579,"url":580},"1787536449","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3015137#comment-16743932",{"created":582,"url":583},"1787520571","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdruxt\u002Fissues\u002F3618675#comment-16743820",{"created":585,"url":586},"1787472800","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdruxt\u002Fissues\u002F3618677#comment-16743404",{"created":588,"url":589},"1787472568","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdruxt\u002Fissues\u002F3618675#comment-16743402",{"created":591,"url":592},"1787472043","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3111456#comment-16743399",{"created":594,"url":595},"1787472000","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3111456#comment-16743397",{"created":597,"url":598},"1787452630","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ftextimage\u002Fissues\u002F3569464#comment-16743364",{"created":600,"url":601},"1787379945","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3397122#comment-16742743",{"created":603,"url":604},"1787379281","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3411402#comment-16742738",{"created":606,"url":607},"1787378122","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3611685#comment-16742732",{"created":609,"url":610},"1787355802","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ftextimage\u002Fissues\u002F3569464#comment-16742670",{"created":612,"url":613},"1787268648","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ftextimage\u002Fissues\u002F3569464#comment-16741259",{"created":615,"url":616},"1787042573","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3495182#comment-16737142",{"created":618,"url":619},"1787042397","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Ffilefield_paths\u002Fissues\u002F3419618#comment-16737135",{"created":621,"url":622},"1787042086","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3283966#comment-16737125",{"created":624,"url":625},"1787041895","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3491897#comment-16737120",{"created":627,"url":628},"1787041013","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3397122#comment-16737104",{"created":630,"url":631},"1787039137","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3397122#comment-16737086",{"created":633,"url":634},"1787035037","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3411402#comment-16737032",{"created":636,"url":637},"1787031889","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3411402#comment-16737012",{"created":639,"url":640},"1787019660","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3111719#comment-16736961",{"created":642,"url":643},"1787018708","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3166364#comment-16736950",{"created":645,"url":646},"1787015390","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3303226#comment-16736918",{"created":648,"url":649},"1786943918","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3355984#comment-16735624",{"created":651,"url":652},"1786940928","https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fdecoupled_router\u002Fissues\u002F3166364#comment-16735567",{"list":654},[655,658,661,664,667,670,673,676,679,682,685,688,691,694,697,700,703,706,709,712,715,718,721,724,727,730,733,736,739,742,745,748,751,754,757,760,763,766,769,772,775,778,781,784,787,790,793,796,799,802],{"created":656,"title":657},"1787731539","decoupled_settings 1.0.0-beta2",{"created":659,"title":660},"1787654460","decoupled_settings 1.0.0-beta1",{"created":662,"title":663},"1787382308","decoupled_router 2.0.7",{"created":665,"title":666},"1786266222","jsonapi_views 8.x-1.2",{"created":668,"title":669},"1785462039","custom_formatters 4.1.0",{"created":671,"title":672},"1784183539","imagefield_tokens 3.2.x-dev",{"created":674,"title":675},"1783477661","field_tokens 2.0.0",{"created":677,"title":678},"1781748605","field_tokens 2.0.0-rc4",{"created":680,"title":681},"1780823431","custom_formatters 4.1.0-beta3",{"created":683,"title":684},"1779757758","field_tokens 2.0.x-dev",{"created":686,"title":687},"1779586472","custom_formatters 4.1.0-beta2",{"created":689,"title":690},"1777794354","custom_formatters 4.1.x-dev",{"created":692,"title":693},"1676000321","druxt 1.2.x-dev",{"created":695,"title":696},"1676000291","druxt 1.2.0",{"created":698,"title":699},"1675998772","jsonapi_views 8.x-1.1",{"created":701,"title":702},"1635120605","druxt 1.1.1",{"created":704,"title":705},"1634962907","druxt 1.1.0",{"created":707,"title":708},"1634962672","druxt 1.1.x-dev",{"created":710,"title":711},"1633070672","jsonapi_views 8.x-1.0",{"created":713,"title":714},"1623905502","jsonapi_views 8.x-1.0-beta3",{"created":716,"title":717},"1623037306","druxt 1.0.2",{"created":719,"title":720},"1622617266","druxt 1.0.1",{"created":722,"title":723},"1619993261","jsonapi_menu_items 1.2.1",{"created":725,"title":726},"1619843589","druxt 1.0.0",{"created":728,"title":729},"1618724732","jsonapi_menu_items 1.2.0",{"created":731,"title":732},"1618724492","jsonapi_menu_items 1.2.x-dev",{"created":734,"title":735},"1616619130","jsonapi_views 8.x-1.0-beta2",{"created":737,"title":738},"1615111239","druxt 1.0.0-beta2",{"created":740,"title":741},"1612775511","druxt 1.0.0-beta1",{"created":743,"title":744},"1612768879","jsonapi_views 8.x-1.0-beta1",{"created":746,"title":747},"1611263472","jsonapi_menu_items 1.1.1",{"created":749,"title":750},"1611184889","jsonapi_menu_items 1.1.x-dev",{"created":752,"title":753},"1602805495","druxt 0.4.1",{"created":755,"title":756},"1600354700","jsonapi_menu_items 1.1.0",{"created":758,"title":759},"1599791532","jsonapi_menu_items 1.0.1",{"created":761,"title":762},"1599537629","druxt 0.4.0",{"created":764,"title":765},"1599199621","jsonapi_menu_items 1.0.0",{"created":767,"title":768},"1599199507","jsonapi_menu_items 1.0.x-dev",{"created":770,"title":771},"1598235135","druxt 0.3.0",{"created":773,"title":774},"1597270761","druxt 0.2.0",{"created":776,"title":777},"1597127254","decoupled_router 8.x-1.12",{"created":779,"title":780},"1595661841","druxt 0.1.0",{"created":782,"title":783},"1595661719","druxt 0.0.x-dev",{"created":785,"title":786},"1595067695","druxt 1.0.x-dev",{"created":788,"title":789},"1481224378","gss 8.x-1.x-dev",{"created":791,"title":792},"1479245851","better_subthemes 8.x-1.1",{"created":794,"title":795},"1479071312","better_subthemes 8.x-1.0",{"created":797,"title":798},"1479071048","better_subthemes 8.x-1.x-dev",{"created":800,"title":801},"1476912560","custom_formatters 8.x-3.0-alpha1",{"created":803,"title":804},"1476854504","persistent_update 8.x-1.0-beta1",[806,814,822,827,833,840,847,853,858,863,870,875,881,886,890,895,901,907,912,917,922,926,933,938,943,947,953,958,962,968,973,979,984,989,993,998,1002,1007,1012,1017,1021,1026,1030,1034,1038,1043,1047,1052,1057,1061,1066,1071,1076,1082,1087,1092,1097,1102,1106,1113,1118,1122,1128,1133,1137,1141,1146,1150,1154,1159,1163,1168,1172,1178,1182,1187,1191,1196,1200,1206,1210,1215,1220,1224,1228,1232,1236,1243,1247,1251,1255,1259,1265,1270,1274,1278,1282,1287,1291,1295,1301,1305,1310,1315,1321,1326,1330,1335,1340,1345,1350,1355,1360,1364,1369,1374,1379,1384,1389,1393,1398,1404,1409,1414,1419,1424,1429,1433,1437,1443,1450,1455,1461,1466,1470,1475,1480,1485,1490,1495,1500,1506,1511,1517,1521,1526,1532,1536,1544,1549,1555,1560,1566,1572,1576,1581,1586,1591,1596,1601,1605,1609,1613,1617,1621,1625,1631,1637,1642,1646,1651,1655,1659,1664,1669,1674,1679,1684,1688,1693,1698,1702,1707,1711,1716,1721,1726,1732,1738,1743,1747,1752,1757,1763,1768,1773,1778,1782,1787,1792,1797,1801,1806,1811,1815,1820,1824,1828,1833,1838,1841,1846,1851,1856,1860,1864,1869,1874,1878,1883,1888,1893,1898,1903,1908,1913,1918,1923,1928,1936,1939,1943,1949,1954,1959,1963,1968,1973,1977,1982,1987,1993,1996,2000,2004,2010,2015,2020,2026,2030,2035,2038,2043,2048,2053,2059,2064,2069,2075,2079,2083,2086,2091,2097,2102,2107,2111,2116,2120,2125,2130,2135,2140,2145,2150,2154,2158,2163,2168,2173,2178,2183,2188,2192,2197,2201,2208,2212,2216,2221,2225,2230,2235,2240,2245,2249,2255,2259,2264,2269],{"type":807,"repo":808,"created_at":810,"payload":811},"DeleteEvent",{"name":809},"druxt\u002Fdruxt.js","2026-09-02T03:23:45Z",{"ref":812,"ref_type":813},"feature\u002Fdocs-lint-base","branch",{"type":815,"repo":816,"created_at":817,"payload":818},"PullRequestEvent",{"name":809},"2026-09-02T10:21:06Z",{"action":819,"pull_request":820},"opened",{"number":821},799,{"type":807,"repo":823,"created_at":824,"payload":825},{"name":809},"2026-09-02T03:30:27Z",{"ref":826,"ref_type":813},"fix\u002Fclean-rimraf-node16",{"type":828,"repo":829,"created_at":830,"payload":831},"PushEvent",{"name":809},"2026-09-01T21:26:31Z",{"ref":832},"refs\u002Fheads\u002Ffeature\u002Fdocs-site-redesign",{"type":815,"repo":834,"created_at":835,"payload":836},{"name":809},"2026-09-02T09:14:25Z",{"action":837,"pull_request":838},"merged",{"number":839},785,{"type":815,"repo":841,"created_at":843,"payload":844},{"name":842},"Decipher\u002Ffilefield_paths","2026-09-02T09:13:32Z",{"action":837,"pull_request":845},{"number":846},25,{"type":815,"repo":848,"created_at":849,"payload":850},{"name":842},"2026-09-02T08:57:13Z",{"action":837,"pull_request":851},{"number":852},28,{"type":828,"repo":854,"created_at":855,"payload":856},{"name":809},"2026-09-01T08:45:51Z",{"ref":857},"refs\u002Fheads\u002Ffeature\u002Fdocs-module-header-base",{"type":859,"repo":860,"created_at":861,"payload":862},"CreateEvent",{"name":809},"2026-09-02T02:27:11Z",{"ref":812,"ref_type":813},{"type":864,"repo":865,"created_at":866,"payload":867},"IssueCommentEvent",{"name":842},"2026-09-02T08:09:43Z",{"action":868,"issue":869},"created",{"number":852},{"type":815,"repo":871,"created_at":872,"payload":873},{"name":842},"2026-09-02T07:43:40Z",{"action":819,"pull_request":874},{"number":852},{"type":815,"repo":876,"created_at":877,"payload":878},{"name":809},"2026-09-02T05:35:50Z",{"action":837,"pull_request":879},{"number":880},786,{"type":807,"repo":882,"created_at":883,"payload":884},{"name":809},"2026-09-01T23:10:23Z",{"ref":885,"ref_type":813},"fix\u002Fdocs-preview-origin",{"type":828,"repo":887,"created_at":888,"payload":889},{"name":809},"2026-09-01T23:10:21Z",{"ref":832},{"type":864,"repo":891,"created_at":892,"payload":893},{"name":809},"2026-09-02T04:09:49Z",{"action":868,"issue":894},{"number":880},{"type":815,"repo":896,"created_at":897,"payload":898},{"name":809},"2026-09-02T03:30:25Z",{"action":837,"pull_request":899},{"number":900},797,{"type":815,"repo":902,"created_at":903,"payload":904},{"name":809},"2026-09-02T03:23:42Z",{"action":837,"pull_request":905},{"number":906},796,{"type":815,"repo":908,"created_at":909,"payload":910},{"name":809},"2026-09-02T03:19:23Z",{"action":819,"pull_request":911},{"number":900},{"type":864,"repo":913,"created_at":914,"payload":915},{"name":809},"2026-09-02T03:02:16Z",{"action":868,"issue":916},{"number":906},{"type":815,"repo":918,"created_at":919,"payload":920},{"name":809},"2026-09-02T02:28:01Z",{"action":819,"pull_request":921},{"number":906},{"type":828,"repo":923,"created_at":924,"payload":925},{"name":809},"2026-09-01T09:21:32Z",{"ref":857},{"type":927,"repo":928,"created_at":929,"payload":930},"PullRequestReviewCommentEvent",{"name":809},"2026-09-01T22:09:32Z",{"action":868,"pull_request":931},{"number":932},795,{"type":815,"repo":934,"created_at":935,"payload":936},{"name":809},"2026-09-01T23:10:20Z",{"action":837,"pull_request":937},{"number":932},{"type":859,"repo":939,"created_at":940,"payload":941},{"name":809},"2026-09-01T08:38:32Z",{"ref":942,"ref_type":813},"feature\u002Fdocs-module-header-base",{"type":828,"repo":944,"created_at":945,"payload":946},{"name":809},"2026-09-01T05:15:37Z",{"ref":832},{"type":948,"repo":949,"created_at":950,"payload":951},"PullRequestReviewEvent",{"name":809},"2026-09-01T22:09:33Z",{"action":868,"pull_request":952},{"number":932},{"type":815,"repo":954,"created_at":955,"payload":956},{"name":809},"2026-09-01T22:02:31Z",{"action":819,"pull_request":957},{"number":932},{"type":828,"repo":959,"created_at":960,"payload":961},{"name":809},"2026-09-01T10:07:18Z",{"ref":857},{"type":815,"repo":963,"created_at":964,"payload":965},{"name":809},"2026-09-01T21:26:30Z",{"action":837,"pull_request":966},{"number":967},793,{"type":828,"repo":969,"created_at":970,"payload":971},{"name":809},"2026-09-01T04:58:17Z",{"ref":972},"refs\u002Fheads\u002Fdevelop",{"type":927,"repo":974,"created_at":975,"payload":976},{"name":809},"2026-09-01T10:51:22Z",{"action":868,"pull_request":977},{"number":978},794,{"type":828,"repo":980,"created_at":981,"payload":982},{"name":809},"2026-09-01T02:42:27Z",{"ref":983},"refs\u002Fheads\u002Ffeature\u002Fdocs-seo-base",{"type":828,"repo":985,"created_at":986,"payload":987},{"name":809},"2026-09-01T10:51:04Z",{"ref":988},"refs\u002Fheads\u002Ffeature\u002Fdocs-infra-base",{"type":828,"repo":990,"created_at":991,"payload":992},{"name":809},"2026-09-01T03:00:27Z",{"ref":832},{"type":807,"repo":994,"created_at":995,"payload":996},{"name":809},"2026-09-01T11:20:56Z",{"ref":997,"ref_type":813},"feature\u002Fdocs-infra-base",{"type":828,"repo":999,"created_at":1000,"payload":1001},{"name":809},"2026-09-01T11:20:55Z",{"ref":832},{"type":859,"repo":1003,"created_at":1004,"payload":1005},{"name":809},"2026-09-01T02:17:14Z",{"ref":1006,"ref_type":813},"feature\u002Fdocs-seo-base",{"type":815,"repo":1008,"created_at":1009,"payload":1010},{"name":809},"2026-09-01T11:20:54Z",{"action":837,"pull_request":1011},{"number":978},{"type":948,"repo":1013,"created_at":1014,"payload":1015},{"name":809},"2026-09-01T10:51:23Z",{"action":868,"pull_request":1016},{"number":978},{"type":859,"repo":1018,"created_at":1019,"payload":1020},{"name":809},"2026-09-01T09:55:49Z",{"ref":997,"ref_type":813},{"type":815,"repo":1022,"created_at":1023,"payload":1024},{"name":809},"2026-09-01T09:55:56Z",{"action":819,"pull_request":1025},{"number":978},{"type":828,"repo":1027,"created_at":1028,"payload":1029},{"name":809},"2026-09-01T08:37:46Z",{"ref":832},{"type":828,"repo":1031,"created_at":1032,"payload":1033},{"name":809},"2026-09-01T08:54:57Z",{"ref":857},{"type":828,"repo":1035,"created_at":1036,"payload":1037},{"name":809},"2026-09-01T08:45:47Z",{"ref":832},{"type":864,"repo":1039,"created_at":1040,"payload":1041},{"name":809},"2026-09-01T09:21:50Z",{"action":868,"issue":1042},{"number":967},{"type":828,"repo":1044,"created_at":1045,"payload":1046},{"name":809},"2026-09-01T08:09:36Z",{"ref":832},{"type":815,"repo":1048,"created_at":1049,"payload":1050},{"name":809},"2026-09-01T08:39:20Z",{"action":819,"pull_request":1051},{"number":967},{"type":828,"repo":1053,"created_at":1054,"payload":1055},{"name":842},"2026-09-01T03:01:30Z",{"ref":1056},"refs\u002Fheads\u002Ffeature\u002F3045063-redirect-hash",{"type":807,"repo":1058,"created_at":1059,"payload":1060},{"name":809},"2026-09-01T03:00:28Z",{"ref":1006,"ref_type":813},{"type":828,"repo":1062,"created_at":1063,"payload":1064},{"name":809},"2026-09-01T05:16:43Z",{"ref":1065},"refs\u002Fheads\u002Ffeature\u002Fexamples-consolidation",{"type":807,"repo":1067,"created_at":1068,"payload":1069},{"name":809},"2026-09-01T04:58:19Z",{"ref":1070,"ref_type":813},"docs\u002Fchangelog-programme",{"type":807,"repo":1072,"created_at":1073,"payload":1074},{"name":809},"2026-09-01T05:03:10Z",{"ref":1075,"ref_type":813},"feature\u002Fdocs-seo",{"type":815,"repo":1077,"created_at":1078,"payload":1079},{"name":809},"2026-09-01T04:58:16Z",{"action":837,"pull_request":1080},{"number":1081},792,{"type":828,"repo":1083,"created_at":1084,"payload":1085},{"name":809},"2026-09-01T04:36:39Z",{"ref":1086},"refs\u002Fheads\u002Fdocs\u002Fchangelog-programme",{"type":927,"repo":1088,"created_at":1089,"payload":1090},{"name":809},"2026-09-01T04:36:51Z",{"action":868,"pull_request":1091},{"number":1081},{"type":948,"repo":1093,"created_at":1094,"payload":1095},{"name":809},"2026-09-01T04:36:52Z",{"action":868,"pull_request":1096},{"number":1081},{"type":815,"repo":1098,"created_at":1099,"payload":1100},{"name":809},"2026-09-01T04:20:39Z",{"action":819,"pull_request":1101},{"number":1081},{"type":859,"repo":1103,"created_at":1104,"payload":1105},{"name":809},"2026-09-01T04:20:37Z",{"ref":1070,"ref_type":813},{"type":815,"repo":1107,"created_at":1108,"payload":1109},{"name":809},"2026-08-31T01:15:20Z",{"action":1110,"pull_request":1111},"closed",{"number":1112},787,{"type":864,"repo":1114,"created_at":1115,"payload":1116},{"name":809},"2026-09-01T03:03:38Z",{"action":868,"issue":1117},{"number":1112},{"type":828,"repo":1119,"created_at":1120,"payload":1121},{"name":809},"2026-09-01T02:36:21Z",{"ref":983},{"type":815,"repo":1123,"created_at":1124,"payload":1125},{"name":809},"2026-09-01T03:00:26Z",{"action":837,"pull_request":1126},{"number":1127},791,{"type":828,"repo":1129,"created_at":1130,"payload":1131},{"name":809},"2026-08-31T23:57:45Z",{"ref":1132},"refs\u002Fheads\u002Ffeature\u002Fdocs-ia-diataxis",{"type":828,"repo":1134,"created_at":1135,"payload":1136},{"name":809},"2026-09-01T02:22:04Z",{"ref":832},{"type":828,"repo":1138,"created_at":1139,"payload":1140},{"name":809},"2026-09-01T02:22:07Z",{"ref":983},{"type":815,"repo":1142,"created_at":1143,"payload":1144},{"name":809},"2026-09-01T02:17:16Z",{"action":819,"pull_request":1145},{"number":1127},{"type":828,"repo":1147,"created_at":1148,"payload":1149},{"name":809},"2026-08-31T11:21:59Z",{"ref":1132},{"type":828,"repo":1151,"created_at":1152,"payload":1153},{"name":809},"2026-08-29T08:58:09Z",{"ref":832},{"type":807,"repo":1155,"created_at":1156,"payload":1157},{"name":809},"2026-08-31T11:50:15Z",{"ref":1158,"ref_type":813},"feature\u002Fdocs-og-images",{"type":859,"repo":1160,"created_at":1161,"payload":1162},{"name":809},"2026-08-31T11:20:32Z",{"ref":1158,"ref_type":813},{"type":828,"repo":1164,"created_at":1165,"payload":1166},{"name":809},"2026-08-31T11:27:37Z",{"ref":1167},"refs\u002Fheads\u002Ffeature\u002Fdocs-og-images",{"type":828,"repo":1169,"created_at":1170,"payload":1171},{"name":809},"2026-08-31T11:50:12Z",{"ref":1132},{"type":815,"repo":1173,"created_at":1174,"payload":1175},{"name":809},"2026-08-31T11:50:13Z",{"action":837,"pull_request":1176},{"number":1177},790,{"type":828,"repo":1179,"created_at":1180,"payload":1181},{"name":809},"2026-08-31T11:32:46Z",{"ref":1167},{"type":815,"repo":1183,"created_at":1184,"payload":1185},{"name":809},"2026-08-31T11:22:01Z",{"action":819,"pull_request":1186},{"number":1177},{"type":828,"repo":1188,"created_at":1189,"payload":1190},{"name":809},"2026-08-31T03:54:17Z",{"ref":832},{"type":807,"repo":1192,"created_at":1193,"payload":1194},{"name":809},"2026-08-31T03:54:18Z",{"ref":1195,"ref_type":813},"feature\u002Fdocs-module-icons",{"type":859,"repo":1197,"created_at":1198,"payload":1199},{"name":809},"2026-08-31T03:16:31Z",{"ref":1195,"ref_type":813},{"type":815,"repo":1201,"created_at":1202,"payload":1203},{"name":809},"2026-08-31T03:54:16Z",{"action":837,"pull_request":1204},{"number":1205},789,{"type":828,"repo":1207,"created_at":1208,"payload":1209},{"name":842},"2026-08-29T00:32:20Z",{"ref":1056},{"type":815,"repo":1211,"created_at":1212,"payload":1213},{"name":809},"2026-08-31T03:44:44Z",{"action":819,"pull_request":1214},{"number":1205},{"type":828,"repo":1216,"created_at":1217,"payload":1218},{"name":809},"2026-08-31T01:11:40Z",{"ref":1219},"refs\u002Fheads\u002Ffeature\u002Fdocs-seo",{"type":828,"repo":1221,"created_at":1222,"payload":1223},{"name":809},"2026-08-31T01:11:43Z",{"ref":1132},{"type":828,"repo":1225,"created_at":1226,"payload":1227},{"name":809},"2026-08-31T00:41:23Z",{"ref":1065},{"type":828,"repo":1229,"created_at":1230,"payload":1231},{"name":809},"2026-08-29T22:44:33Z",{"ref":1219},{"type":859,"repo":1233,"created_at":1234,"payload":1235},{"name":809},"2026-08-29T20:39:28Z",{"ref":1075,"ref_type":813},{"type":1237,"repo":1238,"created_at":1240,"payload":1241},"WatchEvent",{"name":1239},"basics\u002Fnuxt-booster","2026-08-29T23:56:34Z",{"action":1242},"started",{"type":828,"repo":1244,"created_at":1245,"payload":1246},{"name":809},"2026-08-29T23:55:14Z",{"ref":1219},{"type":828,"repo":1248,"created_at":1249,"payload":1250},{"name":809},"2026-08-29T23:33:08Z",{"ref":1219},{"type":828,"repo":1252,"created_at":1253,"payload":1254},{"name":809},"2026-08-29T23:22:20Z",{"ref":1219},{"type":828,"repo":1256,"created_at":1257,"payload":1258},{"name":809},"2026-08-29T23:14:08Z",{"ref":1219},{"type":815,"repo":1260,"created_at":1261,"payload":1262},{"name":809},"2026-08-29T22:59:41Z",{"action":819,"pull_request":1263},{"number":1264},788,{"type":859,"repo":1266,"created_at":1267,"payload":1268},{"name":809},"2026-08-29T22:58:53Z",{"ref":1269,"ref_type":813},"feature\u002Fdocs-ia-diataxis",{"type":828,"repo":1271,"created_at":1272,"payload":1273},{"name":809},"2026-08-29T21:58:57Z",{"ref":1219},{"type":828,"repo":1275,"created_at":1276,"payload":1277},{"name":809},"2026-08-29T21:34:19Z",{"ref":1219},{"type":828,"repo":1279,"created_at":1280,"payload":1281},{"name":809},"2026-08-29T21:12:35Z",{"ref":1219},{"type":815,"repo":1283,"created_at":1284,"payload":1285},{"name":809},"2026-08-29T20:40:06Z",{"action":819,"pull_request":1286},{"number":1112},{"type":828,"repo":1288,"created_at":1289,"payload":1290},{"name":809},"2026-08-29T08:07:06Z",{"ref":832},{"type":828,"repo":1292,"created_at":1293,"payload":1294},{"name":809},"2026-08-29T08:05:48Z",{"ref":832},{"type":807,"repo":1296,"created_at":1298,"payload":1299},{"name":1297},"Decipher\u002Fstuar.tc","2026-08-28T04:25:17Z",{"ref":1300,"ref_type":813},"release\u002Fv1.6.2",{"type":828,"repo":1302,"created_at":1303,"payload":1304},{"name":809},"2026-08-29T07:46:00Z",{"ref":832},{"type":807,"repo":1306,"created_at":1307,"payload":1308},{"name":1297},"2026-08-28T03:54:49Z",{"ref":1309,"ref_type":813},"chore\u002Fverify-giscus-mapping",{"type":828,"repo":1311,"created_at":1312,"payload":1313},{"name":842},"2026-08-28T02:34:55Z",{"ref":1314},"refs\u002Fheads\u002Ffeature\u002F3616606-active-updating",{"type":828,"repo":1316,"created_at":1318,"payload":1319},{"name":1317},"druxt\u002Fquickstart-druxt-site-tome","2026-08-28T09:27:11Z",{"ref":1320},"refs\u002Fheads\u002Ffeat\u002Fdrupal-11-upgrade-and-devtools",{"type":859,"repo":1322,"created_at":1323,"payload":1324},{"name":842},"2026-08-28T01:27:39Z",{"ref":1325,"ref_type":813},"feature\u002F3616606-active-updating",{"type":859,"repo":1327,"created_at":1328,"payload":1329},{"name":1297},"2026-08-28T04:06:22Z",{"ref":1300,"ref_type":813},{"type":815,"repo":1331,"created_at":1332,"payload":1333},{"name":809},"2026-08-29T07:22:39Z",{"action":819,"pull_request":1334},{"number":880},{"type":859,"repo":1336,"created_at":1337,"payload":1338},{"name":809},"2026-08-29T07:22:30Z",{"ref":1339,"ref_type":813},"feature\u002Fdocs-site-redesign",{"type":828,"repo":1341,"created_at":1342,"payload":1343},{"name":1297},"2026-08-28T03:46:58Z",{"ref":1344},"refs\u002Fheads\u002Fchore\u002Fverify-giscus-mapping",{"type":828,"repo":1346,"created_at":1347,"payload":1348},{"name":842},"2026-08-28T03:38:26Z",{"ref":1349},"refs\u002Fheads\u002Ffeature\u002F3494240-staging-redirect",{"type":859,"repo":1351,"created_at":1352,"payload":1353},{"name":842},"2026-08-28T03:07:09Z",{"ref":1354,"ref_type":813},"chore\u002Frenovate-automerge",{"type":859,"repo":1356,"created_at":1357,"payload":1358},{"name":842},"2026-08-28T01:27:43Z",{"ref":1359,"ref_type":813},"feature\u002F3494240-staging-redirect",{"type":828,"repo":1361,"created_at":1362,"payload":1363},{"name":1297},"2026-08-27T21:38:26Z",{"ref":1344},{"type":807,"repo":1365,"created_at":1366,"payload":1367},{"name":1297},"2026-08-27T23:23:29Z",{"ref":1368,"ref_type":813},"feat\u002Fsponsor-block-placement",{"type":828,"repo":1370,"created_at":1371,"payload":1372},{"name":1297},"2026-08-27T23:10:39Z",{"ref":1373},"refs\u002Fheads\u002Ffix\u002Fsponsor-click-gtag-delivery",{"type":828,"repo":1375,"created_at":1376,"payload":1377},{"name":1297},"2026-08-27T21:20:39Z",{"ref":1378},"refs\u002Fheads\u002Ffeat\u002Fsite-version-changelog",{"type":859,"repo":1380,"created_at":1381,"payload":1382},{"name":1297},"2026-08-27T21:31:21Z",{"ref":1383,"ref_type":813},"fix\u002Fsponsor-click-gtag-delivery",{"type":828,"repo":1385,"created_at":1386,"payload":1387},{"name":842},"2026-08-28T06:02:11Z",{"ref":1388},"refs\u002Fheads\u002Ffeature\u002F3432653-scheme-guard",{"type":828,"repo":1390,"created_at":1391,"payload":1392},{"name":1297},"2026-08-28T04:25:16Z",{"ref":972},{"type":828,"repo":1394,"created_at":1395,"payload":1396},{"name":1297},"2026-08-28T04:26:00Z",{"ref":1397},"refs\u002Fheads\u002Fmain",{"type":815,"repo":1399,"created_at":1400,"payload":1401},{"name":1297},"2026-08-28T04:25:15Z",{"action":837,"pull_request":1402},{"number":1403},170,{"type":864,"repo":1405,"created_at":1406,"payload":1407},{"name":1297},"2026-08-28T04:18:08Z",{"action":868,"issue":1408},{"number":1403},{"type":828,"repo":1410,"created_at":1411,"payload":1412},{"name":1297},"2026-08-28T04:18:07Z",{"ref":1413},"refs\u002Fheads\u002Frelease\u002Fv1.6.2",{"type":864,"repo":1415,"created_at":1416,"payload":1417},{"name":1297},"2026-08-28T04:07:00Z",{"action":868,"issue":1418},{"number":1403},{"type":815,"repo":1420,"created_at":1421,"payload":1422},{"name":1297},"2026-08-28T04:06:50Z",{"action":819,"pull_request":1423},{"number":1403},{"type":828,"repo":1425,"created_at":1426,"payload":1427},{"name":842},"2026-08-27T03:18:09Z",{"ref":1428},"refs\u002Fheads\u002F8.x-1.x",{"type":828,"repo":1430,"created_at":1431,"payload":1432},{"name":842},"2026-08-28T03:21:18Z",{"ref":1428},{"type":828,"repo":1434,"created_at":1435,"payload":1436},{"name":1297},"2026-08-28T03:54:48Z",{"ref":972},{"type":815,"repo":1438,"created_at":1439,"payload":1440},{"name":1297},"2026-08-28T03:54:47Z",{"action":837,"pull_request":1441},{"number":1442},168,{"type":815,"repo":1444,"created_at":1445,"payload":1446},{"name":842},"2026-08-28T03:51:58Z",{"action":1447,"pull_request":1448},"reopened",{"number":1449},26,{"type":815,"repo":1451,"created_at":1452,"payload":1453},{"name":842},"2026-08-28T03:36:52Z",{"action":1110,"pull_request":1454},{"number":1449},{"type":864,"repo":1456,"created_at":1457,"payload":1458},{"name":842},"2026-08-28T03:47:33Z",{"action":868,"issue":1459},{"number":1460},24,{"type":864,"repo":1462,"created_at":1463,"payload":1464},{"name":1297},"2026-08-28T03:47:14Z",{"action":868,"issue":1465},{"number":1442},{"type":828,"repo":1467,"created_at":1468,"payload":1469},{"name":842},"2026-08-28T03:38:28Z",{"ref":1314},{"type":815,"repo":1471,"created_at":1472,"payload":1473},{"name":842},"2026-08-28T03:25:01Z",{"action":1447,"pull_request":1474},{"number":1449},{"type":815,"repo":1476,"created_at":1477,"payload":1478},{"name":842},"2026-08-28T03:17:43Z",{"action":1110,"pull_request":1479},{"number":1449},{"type":815,"repo":1481,"created_at":1482,"payload":1483},{"name":842},"2026-08-28T03:24:59Z",{"action":1447,"pull_request":1484},{"number":846},{"type":815,"repo":1486,"created_at":1487,"payload":1488},{"name":842},"2026-08-28T03:17:49Z",{"action":1110,"pull_request":1489},{"number":846},{"type":815,"repo":1491,"created_at":1492,"payload":1493},{"name":842},"2026-08-28T03:24:56Z",{"action":1447,"pull_request":1494},{"number":1460},{"type":815,"repo":1496,"created_at":1497,"payload":1498},{"name":842},"2026-08-28T03:17:39Z",{"action":1110,"pull_request":1499},{"number":1460},{"type":815,"repo":1501,"created_at":1502,"payload":1503},{"name":842},"2026-08-28T03:24:28Z",{"action":1447,"pull_request":1504},{"number":1505},23,{"type":815,"repo":1507,"created_at":1508,"payload":1509},{"name":842},"2026-08-28T03:17:45Z",{"action":1110,"pull_request":1510},{"number":1505},{"type":815,"repo":1512,"created_at":1513,"payload":1514},{"name":842},"2026-08-28T03:21:17Z",{"action":837,"pull_request":1515},{"number":1516},27,{"type":828,"repo":1518,"created_at":1519,"payload":1520},{"name":842},"2026-08-28T02:28:05Z",{"ref":1314},{"type":815,"repo":1522,"created_at":1523,"payload":1524},{"name":842},"2026-08-28T03:07:16Z",{"action":819,"pull_request":1525},{"number":1516},{"type":828,"repo":1527,"created_at":1529,"payload":1530},{"name":1528},"Decipher\u002Fdruxt-decoupled-settings","2026-08-27T00:34:37Z",{"ref":1531},"refs\u002Fheads\u002Ffeature\u002F3-example-app",{"type":828,"repo":1533,"created_at":1534,"payload":1535},{"name":842},"2026-08-28T02:48:47Z",{"ref":1314},{"type":1537,"repo":1538,"created_at":1540,"payload":1541},"IssuesEvent",{"name":1539},"seoes\u002Fproval","2026-08-28T02:36:24Z",{"action":819,"issue":1542},{"number":1543},3,{"type":859,"repo":1545,"created_at":1546,"payload":1547},{"name":842},"2026-08-28T01:27:44Z",{"ref":1548,"ref_type":813},"feature\u002F3432653-scheme-guard",{"type":859,"repo":1550,"created_at":1552,"payload":1553},{"name":1551},"Decipher\u002Fdecoupled_settings","2026-08-28T00:56:47Z",{"ref":1554,"ref_type":813},"feature\u002F8-derived-keys",{"type":859,"repo":1556,"created_at":1557,"payload":1558},{"name":842},"2026-08-28T01:27:41Z",{"ref":1559,"ref_type":813},"feature\u002F3045063-redirect-hash",{"type":1537,"repo":1561,"created_at":1562,"payload":1563},{"name":1539},"2026-08-28T01:49:16Z",{"action":819,"issue":1564},{"number":1565},2,{"type":1537,"repo":1567,"created_at":1568,"payload":1569},{"name":1539},"2026-08-28T01:41:15Z",{"action":819,"issue":1570},{"number":1571},1,{"type":807,"repo":1573,"created_at":1574,"payload":1575},{"name":1551},"2026-08-28T01:04:58Z",{"ref":1554,"ref_type":813},{"type":828,"repo":1577,"created_at":1578,"payload":1579},{"name":1551},"2026-08-28T00:58:37Z",{"ref":1580},"refs\u002Fheads\u002Ffeature\u002F8-derived-keys",{"type":815,"repo":1582,"created_at":1583,"payload":1584},{"name":842},"2026-08-28T01:28:35Z",{"action":819,"pull_request":1585},{"number":1449},{"type":815,"repo":1587,"created_at":1588,"payload":1589},{"name":842},"2026-08-28T01:28:33Z",{"action":819,"pull_request":1590},{"number":846},{"type":815,"repo":1592,"created_at":1593,"payload":1594},{"name":842},"2026-08-28T01:28:31Z",{"action":819,"pull_request":1595},{"number":1460},{"type":815,"repo":1597,"created_at":1598,"payload":1599},{"name":842},"2026-08-28T01:28:28Z",{"action":819,"pull_request":1600},{"number":1505},{"type":828,"repo":1602,"created_at":1603,"payload":1604},{"name":1297},"2026-08-27T23:24:45Z",{"ref":1344},{"type":828,"repo":1606,"created_at":1607,"payload":1608},{"name":1297},"2026-08-27T21:49:20Z",{"ref":1373},{"type":859,"repo":1610,"created_at":1611,"payload":1612},{"name":1297},"2026-08-27T22:48:55Z",{"ref":1368,"ref_type":813},{"type":828,"repo":1614,"created_at":1615,"payload":1616},{"name":1297},"2026-08-27T23:20:33Z",{"ref":972},{"type":859,"repo":1618,"created_at":1619,"payload":1620},{"name":1297},"2026-08-27T21:31:23Z",{"ref":1309,"ref_type":813},{"type":807,"repo":1622,"created_at":1623,"payload":1624},{"name":1297},"2026-08-27T23:20:34Z",{"ref":1383,"ref_type":813},{"type":815,"repo":1626,"created_at":1627,"payload":1628},{"name":1297},"2026-08-27T23:20:32Z",{"action":837,"pull_request":1629},{"number":1630},167,{"type":815,"repo":1632,"created_at":1633,"payload":1634},{"name":1297},"2026-08-27T22:56:06Z",{"action":1110,"pull_request":1635},{"number":1636},169,{"type":864,"repo":1638,"created_at":1639,"payload":1640},{"name":1297},"2026-08-27T23:16:19Z",{"action":868,"issue":1641},{"number":1636},{"type":828,"repo":1643,"created_at":1644,"payload":1645},{"name":1297},"2026-08-27T21:20:36Z",{"ref":972},{"type":815,"repo":1647,"created_at":1648,"payload":1649},{"name":1297},"2026-08-27T22:49:17Z",{"action":819,"pull_request":1650},{"number":1636},{"type":828,"repo":1652,"created_at":1653,"payload":1654},{"name":1297},"2026-08-27T22:44:02Z",{"ref":1344},{"type":1237,"repo":1656,"created_at":1657,"payload":1658},{"name":1539},"2026-08-27T22:32:12Z",{"action":1242},{"type":864,"repo":1660,"created_at":1661,"payload":1662},{"name":1297},"2026-08-27T21:49:34Z",{"action":868,"issue":1663},{"number":1630},{"type":864,"repo":1665,"created_at":1666,"payload":1667},{"name":1297},"2026-08-27T21:33:13Z",{"action":868,"issue":1668},{"number":1442},{"type":864,"repo":1670,"created_at":1671,"payload":1672},{"name":1297},"2026-08-27T21:33:12Z",{"action":868,"issue":1673},{"number":1630},{"type":815,"repo":1675,"created_at":1676,"payload":1677},{"name":1297},"2026-08-27T21:32:05Z",{"action":819,"pull_request":1678},{"number":1442},{"type":815,"repo":1680,"created_at":1681,"payload":1682},{"name":1297},"2026-08-27T21:31:48Z",{"action":819,"pull_request":1683},{"number":1630},{"type":828,"repo":1685,"created_at":1686,"payload":1687},{"name":1528},"2026-08-26T12:32:20Z",{"ref":1531},{"type":807,"repo":1689,"created_at":1690,"payload":1691},{"name":842},"2026-08-27T03:18:31Z",{"ref":1692,"ref_type":813},"feature\u002F3419618-cross-scheme-move",{"type":828,"repo":1694,"created_at":1695,"payload":1696},{"name":842},"2026-08-27T00:43:58Z",{"ref":1697},"refs\u002Fheads\u002Ffeature\u002F3569210-postgres-target-id",{"type":828,"repo":1699,"created_at":1700,"payload":1701},{"name":842},"2026-08-27T00:20:26Z",{"ref":1428},{"type":828,"repo":1703,"created_at":1704,"payload":1705},{"name":1297},"2026-08-26T10:16:30Z",{"ref":1706},"refs\u002Fheads\u002Ffeat\u002Finternal-link-interpolation",{"type":828,"repo":1708,"created_at":1709,"payload":1710},{"name":1297},"2026-08-26T09:35:29Z",{"ref":1397},{"type":807,"repo":1712,"created_at":1713,"payload":1714},{"name":1551},"2026-08-26T06:24:24Z",{"ref":1715,"ref_type":813},"feature\u002F4-language-behaviour-docs",{"type":807,"repo":1717,"created_at":1718,"payload":1719},{"name":1551},"2026-08-26T06:24:23Z",{"ref":1720,"ref_type":813},"feature\u002F5-preserve-unrendered-overrides",{"type":807,"repo":1722,"created_at":1723,"payload":1724},{"name":842},"2026-08-27T03:18:32Z",{"ref":1725,"ref_type":813},"feature\u002F3569210-postgres-target-id",{"type":815,"repo":1727,"created_at":1728,"payload":1729},{"name":842},"2026-08-27T03:18:10Z",{"action":837,"pull_request":1730},{"number":1731},19,{"type":864,"repo":1733,"created_at":1734,"payload":1735},{"name":1528},"2026-08-27T01:39:56Z",{"action":868,"issue":1736},{"number":1737},11,{"type":807,"repo":1739,"created_at":1740,"payload":1741},{"name":1551},"2026-08-26T06:24:22Z",{"ref":1742,"ref_type":813},"feature\u002F2-exclude-mail-notification",{"type":828,"repo":1744,"created_at":1745,"payload":1746},{"name":1528},"2026-08-27T01:47:07Z",{"ref":1531},{"type":864,"repo":1748,"created_at":1749,"payload":1750},{"name":1528},"2026-08-27T01:46:25Z",{"action":868,"issue":1751},{"number":1737},{"type":864,"repo":1753,"created_at":1754,"payload":1755},{"name":842},"2026-08-27T01:25:39Z",{"action":868,"issue":1756},{"number":1731},{"type":815,"repo":1758,"created_at":1759,"payload":1760},{"name":842},"2026-08-27T00:20:27Z",{"action":837,"pull_request":1761},{"number":1762},18,{"type":828,"repo":1764,"created_at":1765,"payload":1766},{"name":1551},"2026-08-26T05:24:02Z",{"ref":1767},"refs\u002Fheads\u002Ffeature\u002F5-preserve-unrendered-overrides",{"type":828,"repo":1769,"created_at":1770,"payload":1771},{"name":1551},"2026-08-26T05:24:03Z",{"ref":1772},"refs\u002Fheads\u002Ffeature\u002F4-language-behaviour-docs",{"type":864,"repo":1774,"created_at":1775,"payload":1776},{"name":1528},"2026-08-26T22:24:50Z",{"action":868,"issue":1777},{"number":1737},{"type":828,"repo":1779,"created_at":1780,"payload":1781},{"name":1528},"2026-08-26T22:24:32Z",{"ref":1531},{"type":864,"repo":1783,"created_at":1784,"payload":1785},{"name":1528},"2026-08-26T14:45:30Z",{"action":868,"issue":1786},{"number":1737},{"type":828,"repo":1788,"created_at":1789,"payload":1790},{"name":1528},"2026-08-26T11:23:51Z",{"ref":1791},"refs\u002Fheads\u002Ffeature\u002F2-replace-template-example",{"type":828,"repo":1793,"created_at":1794,"payload":1795},{"name":1528},"2026-08-26T11:15:39Z",{"ref":1796},"refs\u002Fheads\u002Ffeature\u002F1-decoupled-settings-module",{"type":828,"repo":1798,"created_at":1799,"payload":1800},{"name":1297},"2026-08-26T10:36:40Z",{"ref":972},{"type":828,"repo":1802,"created_at":1803,"payload":1804},{"name":1551},"2026-08-26T01:50:53Z",{"ref":1805},"refs\u002Fheads\u002Ffeature\u002F6-readme-integrator-notes",{"type":859,"repo":1807,"created_at":1808,"payload":1809},{"name":1297},"2026-08-26T09:03:13Z",{"ref":1810,"ref_type":813},"feat\u002Fdecoupled-settings-post",{"type":828,"repo":1812,"created_at":1813,"payload":1814},{"name":1297},"2026-08-26T09:03:10Z",{"ref":972},{"type":859,"repo":1816,"created_at":1817,"payload":1818},{"name":1551},"2026-08-26T00:40:25Z",{"ref":1819,"ref_type":813},"feature\u002F6-readme-integrator-notes",{"type":859,"repo":1821,"created_at":1822,"payload":1823},{"name":1551},"2026-08-26T00:40:23Z",{"ref":1715,"ref_type":813},{"type":859,"repo":1825,"created_at":1826,"payload":1827},{"name":1551},"2026-08-26T00:40:18Z",{"ref":1742,"ref_type":813},{"type":828,"repo":1829,"created_at":1830,"payload":1831},{"name":1551},"2026-08-26T01:16:11Z",{"ref":1832},"refs\u002Fheads\u002Ffeature\u002F1-page-cache-path-prefix",{"type":807,"repo":1834,"created_at":1835,"payload":1836},{"name":1551},"2026-08-26T06:24:25Z",{"ref":1837,"ref_type":813},"feature\u002F7-changelog-beta2",{"type":807,"repo":1839,"created_at":1835,"payload":1840},{"name":1551},{"ref":1819,"ref_type":813},{"type":807,"repo":1842,"created_at":1843,"payload":1844},{"name":1551},"2026-08-26T06:25:35Z",{"ref":1845,"ref_type":813},"feature\u002F1.0.0-beta1-release",{"type":807,"repo":1847,"created_at":1848,"payload":1849},{"name":1551},"2026-08-26T06:24:26Z",{"ref":1850,"ref_type":813},"integration\u002Fbeta2",{"type":828,"repo":1852,"created_at":1853,"payload":1854},{"name":1551},"2026-08-26T06:20:46Z",{"ref":1855},"refs\u002Fheads\u002F1.0.x",{"type":807,"repo":1857,"created_at":1740,"payload":1858},{"name":1551},{"ref":1859,"ref_type":813},"feature\u002F1-page-cache-path-prefix",{"type":828,"repo":1861,"created_at":1862,"payload":1863},{"name":1528},"2026-08-26T13:43:11Z",{"ref":1531},{"type":864,"repo":1865,"created_at":1866,"payload":1867},{"name":1528},"2026-08-26T13:35:40Z",{"action":868,"issue":1868},{"number":1737},{"type":864,"repo":1870,"created_at":1871,"payload":1872},{"name":1528},"2026-08-26T12:22:31Z",{"action":868,"issue":1873},{"number":1737},{"type":828,"repo":1875,"created_at":1765,"payload":1876},{"name":1551},{"ref":1877},"refs\u002Fheads\u002Ffeature\u002F3-changelog-drupal-10",{"type":864,"repo":1879,"created_at":1880,"payload":1881},{"name":1528},"2026-08-26T11:50:01Z",{"action":868,"issue":1882},{"number":1737},{"type":815,"repo":1884,"created_at":1885,"payload":1886},{"name":1528},"2026-08-26T11:24:16Z",{"action":1447,"pull_request":1887},{"number":1737},{"type":815,"repo":1889,"created_at":1890,"payload":1891},{"name":1528},"2026-08-26T11:24:03Z",{"action":1110,"pull_request":1892},{"number":1737},{"type":815,"repo":1894,"created_at":1895,"payload":1896},{"name":1528},"2026-08-26T11:23:54Z",{"action":819,"pull_request":1897},{"number":1737},{"type":859,"repo":1899,"created_at":1900,"payload":1901},{"name":1528},"2026-08-26T11:23:52Z",{"ref":1902,"ref_type":813},"feature\u002F3-example-app",{"type":815,"repo":1904,"created_at":1905,"payload":1906},{"name":1528},"2026-08-26T11:18:15Z",{"action":1447,"pull_request":1907},{"number":365},{"type":815,"repo":1909,"created_at":1910,"payload":1911},{"name":1528},"2026-08-26T11:17:30Z",{"action":1110,"pull_request":1912},{"number":365},{"type":815,"repo":1914,"created_at":1915,"payload":1916},{"name":1528},"2026-08-26T11:17:22Z",{"action":819,"pull_request":1917},{"number":365},{"type":859,"repo":1919,"created_at":1920,"payload":1921},{"name":1528},"2026-08-26T11:17:21Z",{"ref":1922,"ref_type":813},"feature\u002F2-replace-template-example",{"type":807,"repo":1924,"created_at":1925,"payload":1926},{"name":1297},"2026-08-26T10:35:30Z",{"ref":1927,"ref_type":813},"feat\u002Finternal-link-interpolation",{"type":1929,"repo":1930,"created_at":1931,"payload":1932},"ReleaseEvent",{"name":1297},"2026-08-26T10:36:56Z",{"action":1933,"release":1934},"published",{"tag_name":1935},"v1.6.1",{"type":828,"repo":1937,"created_at":1799,"payload":1938},{"name":1297},{"ref":1397},{"type":828,"repo":1940,"created_at":1941,"payload":1942},{"name":1297},"2026-08-26T10:35:29Z",{"ref":972},{"type":815,"repo":1944,"created_at":1945,"payload":1946},{"name":1297},"2026-08-26T10:35:28Z",{"action":837,"pull_request":1947},{"number":1948},166,{"type":927,"repo":1950,"created_at":1951,"payload":1952},{"name":1297},"2026-08-26T10:16:43Z",{"action":868,"pull_request":1953},{"number":1948},{"type":948,"repo":1955,"created_at":1956,"payload":1957},{"name":1297},"2026-08-26T10:16:44Z",{"action":868,"pull_request":1958},{"number":1948},{"type":948,"repo":1960,"created_at":1951,"payload":1961},{"name":1297},{"action":868,"pull_request":1962},{"number":1948},{"type":927,"repo":1964,"created_at":1965,"payload":1966},{"name":1297},"2026-08-26T10:16:42Z",{"action":868,"pull_request":1967},{"number":1948},{"type":864,"repo":1969,"created_at":1970,"payload":1971},{"name":1297},"2026-08-26T10:11:52Z",{"action":868,"issue":1972},{"number":1948},{"type":859,"repo":1974,"created_at":1975,"payload":1976},{"name":1297},"2026-08-26T10:11:42Z",{"ref":1927,"ref_type":813},{"type":815,"repo":1978,"created_at":1979,"payload":1980},{"name":1297},"2026-08-26T10:11:43Z",{"action":819,"pull_request":1981},{"number":1948},{"type":1237,"repo":1983,"created_at":1985,"payload":1986},{"name":1984},"firecracker-microvm\u002Ffirecracker","2026-08-26T10:11:19Z",{"action":1242},{"type":1929,"repo":1988,"created_at":1989,"payload":1990},{"name":1297},"2026-08-26T09:36:33Z",{"action":1933,"release":1991},{"tag_name":1992},"v1.6.0",{"type":828,"repo":1994,"created_at":1709,"payload":1995},{"name":1297},{"ref":972},{"type":828,"repo":1997,"created_at":1998,"payload":1999},{"name":1297},"2026-08-26T09:33:27Z",{"ref":972},{"type":807,"repo":2001,"created_at":2002,"payload":2003},{"name":1297},"2026-08-26T09:33:28Z",{"ref":1810,"ref_type":813},{"type":815,"repo":2005,"created_at":2006,"payload":2007},{"name":1297},"2026-08-26T09:33:25Z",{"action":837,"pull_request":2008},{"number":2009},165,{"type":828,"repo":2011,"created_at":2012,"payload":2013},{"name":1297},"2026-08-26T09:21:01Z",{"ref":2014},"refs\u002Fheads\u002Ffeat\u002Fdecoupled-settings-post",{"type":815,"repo":2016,"created_at":2017,"payload":2018},{"name":1297},"2026-08-26T09:03:28Z",{"action":819,"pull_request":2019},{"number":2009},{"type":1929,"repo":2021,"created_at":2022,"payload":2023},{"name":1551},"2026-08-26T08:06:33Z",{"action":1933,"release":2024},{"tag_name":2025},"1.0.0-beta2",{"type":828,"repo":2027,"created_at":2028,"payload":2029},{"name":1551},"2026-08-26T07:55:19Z",{"ref":1855},{"type":859,"repo":2031,"created_at":2032,"payload":2033},{"name":1551},"2026-08-26T00:40:21Z",{"ref":2034,"ref_type":813},"feature\u002F3-changelog-drupal-10",{"type":807,"repo":2036,"created_at":1713,"payload":2037},{"name":1551},{"ref":2034,"ref_type":813},{"type":815,"repo":2039,"created_at":2040,"payload":2041},{"name":1551},"2026-08-26T06:20:45Z",{"action":837,"pull_request":2042},{"number":1737},{"type":815,"repo":2044,"created_at":2045,"payload":2046},{"name":1551},"2026-08-26T06:20:44Z",{"action":837,"pull_request":2047},{"number":445},{"type":815,"repo":2049,"created_at":2050,"payload":2051},{"name":1551},"2026-08-26T06:20:43Z",{"action":837,"pull_request":2052},{"number":365},{"type":815,"repo":2054,"created_at":2055,"payload":2056},{"name":1551},"2026-08-26T06:20:41Z",{"action":837,"pull_request":2057},{"number":2058},7,{"type":815,"repo":2060,"created_at":2061,"payload":2062},{"name":1551},"2026-08-26T06:20:42Z",{"action":837,"pull_request":2063},{"number":463},{"type":815,"repo":2065,"created_at":2066,"payload":2067},{"name":1551},"2026-08-26T06:20:40Z",{"action":837,"pull_request":2068},{"number":389},{"type":815,"repo":2070,"created_at":2071,"payload":2072},{"name":1551},"2026-08-26T06:20:39Z",{"action":837,"pull_request":2073},{"number":2074},5,{"type":828,"repo":2076,"created_at":1770,"payload":2077},{"name":1551},{"ref":2078},"refs\u002Fheads\u002Ffeature\u002F2-exclude-mail-notification",{"type":828,"repo":2080,"created_at":1765,"payload":2081},{"name":1551},{"ref":2082},"refs\u002Fheads\u002Ffeature\u002F7-changelog-beta2",{"type":828,"repo":2084,"created_at":1765,"payload":2085},{"name":1551},{"ref":1805},{"type":864,"repo":2087,"created_at":2088,"payload":2089},{"name":1551},"2026-08-26T04:21:17Z",{"action":868,"issue":2090},{"number":2074},{"type":815,"repo":2092,"created_at":2093,"payload":2094},{"name":1551},"2026-08-26T04:18:51Z",{"action":1110,"pull_request":2095},{"number":2096},12,{"type":864,"repo":2098,"created_at":2099,"payload":2100},{"name":1551},"2026-08-26T04:20:01Z",{"action":868,"issue":2101},{"number":2096},{"type":815,"repo":2103,"created_at":2104,"payload":2105},{"name":1551},"2026-08-26T04:12:28Z",{"action":819,"pull_request":2106},{"number":2096},{"type":859,"repo":2108,"created_at":2109,"payload":2110},{"name":1551},"2026-08-26T04:12:27Z",{"ref":1850,"ref_type":813},{"type":815,"repo":2112,"created_at":2113,"payload":2114},{"name":1551},"2026-08-26T04:07:03Z",{"action":819,"pull_request":2115},{"number":1737},{"type":859,"repo":2117,"created_at":2118,"payload":2119},{"name":1551},"2026-08-26T04:07:01Z",{"ref":1837,"ref_type":813},{"type":864,"repo":2121,"created_at":2122,"payload":2123},{"name":1551},"2026-08-26T03:58:58Z",{"action":868,"issue":2124},{"number":2074},{"type":864,"repo":2126,"created_at":2127,"payload":2128},{"name":1551},"2026-08-26T02:55:33Z",{"action":868,"issue":2129},{"number":2074},{"type":864,"repo":2131,"created_at":2132,"payload":2133},{"name":1551},"2026-08-26T02:50:48Z",{"action":868,"issue":2134},{"number":2058},{"type":815,"repo":2136,"created_at":2137,"payload":2138},{"name":1551},"2026-08-26T01:49:26Z",{"action":1447,"pull_request":2139},{"number":365},{"type":815,"repo":2141,"created_at":2142,"payload":2143},{"name":1551},"2026-08-26T01:49:04Z",{"action":1110,"pull_request":2144},{"number":365},{"type":864,"repo":2146,"created_at":2147,"payload":2148},{"name":1551},"2026-08-26T01:43:11Z",{"action":868,"issue":2149},{"number":389},{"type":828,"repo":2151,"created_at":2152,"payload":2153},{"name":1551},"2026-08-26T01:34:35Z",{"ref":1772},{"type":828,"repo":2155,"created_at":2156,"payload":2157},{"name":1551},"2026-08-26T01:22:21Z",{"ref":2078},{"type":815,"repo":2159,"created_at":2160,"payload":2161},{"name":1551},"2026-08-26T00:49:27Z",{"action":819,"pull_request":2162},{"number":445},{"type":815,"repo":2164,"created_at":2165,"payload":2166},{"name":1551},"2026-08-26T00:49:25Z",{"action":819,"pull_request":2167},{"number":365},{"type":815,"repo":2169,"created_at":2170,"payload":2171},{"name":1551},"2026-08-26T00:49:23Z",{"action":819,"pull_request":2172},{"number":463},{"type":815,"repo":2174,"created_at":2175,"payload":2176},{"name":1551},"2026-08-26T00:49:21Z",{"action":819,"pull_request":2177},{"number":2058},{"type":815,"repo":2179,"created_at":2180,"payload":2181},{"name":1551},"2026-08-26T00:42:45Z",{"action":819,"pull_request":2182},{"number":389},{"type":864,"repo":2184,"created_at":2185,"payload":2186},{"name":1551},"2026-08-26T00:40:34Z",{"action":868,"issue":2187},{"number":2074},{"type":859,"repo":2189,"created_at":2190,"payload":2191},{"name":1551},"2026-08-26T00:40:20Z",{"ref":1720,"ref_type":813},{"type":815,"repo":2193,"created_at":2194,"payload":2195},{"name":1551},"2026-08-26T00:31:58Z",{"action":819,"pull_request":2196},{"number":2074},{"type":859,"repo":2198,"created_at":2199,"payload":2200},{"name":1551},"2026-08-26T00:31:57Z",{"ref":1859,"ref_type":813},{"type":2202,"repo":2203,"created_at":2205,"payload":2206},"ForkEvent",{"name":2204},"daliborgogic\u002Fnuxt-interpolation","2026-08-25T22:24:51Z",{"action":2207},"forked",{"type":828,"repo":2209,"created_at":2210,"payload":2211},{"name":1528},"2026-08-25T12:49:33Z",{"ref":1796},{"type":828,"repo":2213,"created_at":2214,"payload":2215},{"name":1528},"2026-08-25T13:03:07Z",{"ref":1796},{"type":859,"repo":2217,"created_at":2218,"payload":2219},{"name":1528},"2026-08-25T11:00:32Z",{"ref":2220,"ref_type":813},"develop",{"type":828,"repo":2222,"created_at":2223,"payload":2224},{"name":1551},"2026-08-25T10:01:03Z",{"ref":1855},{"type":828,"repo":2226,"created_at":2227,"payload":2228},{"name":1551},"2026-08-25T10:27:49Z",{"ref":2229},"refs\u002Fheads\u002Ffeature\u002F1.0.0-beta1-release",{"type":864,"repo":2231,"created_at":2232,"payload":2233},{"name":1528},"2026-08-25T12:54:46Z",{"action":868,"issue":2234},{"number":1571},{"type":859,"repo":2236,"created_at":2237,"payload":2238},{"name":1528},"2026-08-25T11:01:24Z",{"ref":2239,"ref_type":813},"feature\u002F1-decoupled-settings-module",{"type":815,"repo":2241,"created_at":2242,"payload":2243},{"name":1528},"2026-08-25T11:02:25Z",{"action":819,"pull_request":2244},{"number":1571},{"type":828,"repo":2246,"created_at":2247,"payload":2248},{"name":1551},"2026-08-25T10:34:55Z",{"ref":1855},{"type":815,"repo":2250,"created_at":2251,"payload":2252},{"name":1551},"2026-08-25T10:34:53Z",{"action":837,"pull_request":2253},{"number":2254},4,{"type":859,"repo":2256,"created_at":2257,"payload":2258},{"name":1551},"2026-08-25T10:25:47Z",{"ref":1845,"ref_type":813},{"type":859,"repo":2260,"created_at":2261,"payload":2262},{"name":1551},"2026-08-25T07:36:04Z",{"ref":2263,"ref_type":813},"1.0.x",{"type":815,"repo":2265,"created_at":2266,"payload":2267},{"name":1551},"2026-08-25T10:26:00Z",{"action":819,"pull_request":2268},{"number":2254},{"type":807,"repo":2270,"created_at":2271,"payload":2272},{"name":1551},"2026-08-25T10:01:08Z",{"ref":2273,"ref_type":813},"feature\u002Fdecoupled-settings-module",[2275,2279,2283,2287,2291,2295,2299,2303,2307,2311,2315,2319,2323,2327,2331,2335,2339,2343,2347,2351,2355,2359,2363,2367,2371,2375,2379,2383,2387,2391,2395,2399,2403,2407,2411,2415,2419,2423,2427,2431,2435,2439,2443,2447,2451,2455,2459,2463,2467,2471,2475,2479,2483,2487,2491,2495,2499,2503,2507,2511,2515,2519,2523,2527,2531,2535,2539,2543,2547,2551],{"created_at":2276,"state":819,"web_url":2277,"title":2278},"2026-09-02T10:09:55.374Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F79","Issue #3045063: Change redirect hash to match the Redirect module",{"created_at":2280,"state":837,"web_url":2281,"title":2282},"2026-08-28T06:23:23.488Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F77","test(#3432653): cover the migration path that reported the crash",{"created_at":2284,"state":837,"web_url":2285,"title":2286},"2026-08-28T04:15:32.747Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F76","Issue #3616606: Detect the original entity without property_exists",{"created_at":2288,"state":819,"web_url":2289,"title":2290},"2026-08-25T03:57:52.449Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_node_preview\u002F-\u002Fmerge_requests\u002F4","Issue #3367724 by amermod, deciphered: Load included references from memory and by revision",{"created_at":2292,"state":819,"web_url":2293,"title":2294},"2026-08-24T23:20:50.079Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F23","fix(#3618677): guard the jsonapi_views route lookup in the Views subscriber",{"created_at":2296,"state":819,"web_url":2297,"title":2298},"2026-08-24T07:25:42.420Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F75","fix(#3015137): point the field item at the moved file",{"created_at":2300,"state":837,"web_url":2301,"title":2302},"2026-08-23T21:29:04.023Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F22","fix(#3618675): restore Decoupled Router 2.0.7 compatibility",{"created_at":2304,"state":819,"web_url":2305,"title":2306},"2026-08-22T07:29:02.073Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_menu_items\u002F-\u002Fmerge_requests\u002F31","test(#3171186): add menu_link_config test coverage",{"created_at":2308,"state":837,"web_url":2309,"title":2310},"2026-08-20T05:41:30.726Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ftextimage\u002F-\u002Fmerge_requests\u002F27","ci: trigger GitHub workflows on the 5.0.x branch",{"created_at":2312,"state":837,"web_url":2313,"title":2314},"2026-08-18T08:39:12.019Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F74","feat(#3419618): allow cross-scheme file moves and report skipped files during retroactive update",{"created_at":2316,"state":837,"web_url":2317,"title":2318},"2026-08-17T04:33:52.709Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdecoupled_router\u002F-\u002Fmerge_requests\u002F40","fix(#3166364): replace dead path hooks with entity hooks",{"created_at":2320,"state":837,"web_url":2321,"title":2322},"2026-08-14T00:46:24.947Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F73","fix: resolve phpstan and rector deprecation warnings",{"created_at":2324,"state":837,"web_url":2325,"title":2326},"2026-08-14T00:45:46.775Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdecoupled_router\u002F-\u002Fmerge_requests\u002F39","ci: fix intermittent phpunit failures on the shared runner",{"created_at":2328,"state":837,"web_url":2329,"title":2330},"2026-08-12T11:26:29.637Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdecoupled_router\u002F-\u002Fmerge_requests\u002F38","fix(#3611685): Catch RedirectLoopException in RedirectPathTranslatorSubscriber",{"created_at":2332,"state":837,"web_url":2333,"title":2334},"2026-08-06T09:21:33.173Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F26","fix(#3265781): add resource type route default for single-bundle views",{"created_at":2336,"state":837,"web_url":2337,"title":2338},"2026-08-04T01:45:14.605Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F25","Issue #3484714: Increase route build speed",{"created_at":2340,"state":837,"web_url":2341,"title":2342},"2026-08-04T00:30:35.129Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F24","Issue #3202583: Views cache settings not added to headers",{"created_at":2344,"state":837,"web_url":2345,"title":2346},"2026-07-29T10:44:55.917Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fcustom_formatters\u002F-\u002Fmerge_requests\u002F13","fix: resolve pre-existing phpstan and phpcs CI failures",{"created_at":2348,"state":837,"web_url":2349,"title":2350},"2026-07-25T00:28:19.398Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F21","test: add comprehensive coverage for path translator subscribers",{"created_at":2352,"state":837,"web_url":2353,"title":2354},"2026-07-23T03:39:56.630Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F20","fix(#3597394): add Drupal 12 compatibility, drop D8\u002FD9",{"created_at":2356,"state":837,"web_url":2357,"title":2358},"2026-07-22T23:56:40.172Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F19","fix(#3558380): pass route name string to Url::fromRoute in Views subscriber",{"created_at":2360,"state":837,"web_url":2361,"title":2362},"2026-07-21T02:14:34.763Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fimagefield_tokens\u002F-\u002Fmerge_requests\u002F8","feat(#3452812): add widget settings for token-based default alt\u002Ftitle values",{"created_at":2364,"state":837,"web_url":2365,"title":2366},"2026-07-15T07:40:27.005Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fimagefield_tokens\u002F-\u002Fmerge_requests\u002F7","fix(#3607919): full Drupal 11.4 compatibility and code modernization",{"created_at":2368,"state":819,"web_url":2369,"title":2370},"2026-07-06T05:10:08.723Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F71","feat(#3608361): pass field delta in token data for [file:delta] support",{"created_at":2372,"state":819,"web_url":2373,"title":2374},"2026-06-22T05:59:57.121Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F70","feat(#2072237): allow disabling File (Field) Paths processing site-wide and per entity",{"created_at":2376,"state":819,"web_url":2377,"title":2378},"2026-06-19T04:22:57.651Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F69","Draft: Test coverage: src\u002F, .module, and .install",{"created_at":2380,"state":837,"web_url":2381,"title":2382},"2026-06-19T01:26:51.661Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F68","test(#3269636): add failing test for private:\u002F\u002F redirect path bug",{"created_at":2384,"state":837,"web_url":2385,"title":2386},"2026-06-18T22:08:20.277Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F67","fix(#3121826): add on-demand image style delivery for temporary:\u002F\u002F staged files",{"created_at":2388,"state":1110,"web_url":2389,"title":2390},"2026-06-18T08:41:50.682Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffilefield_paths\u002F-\u002Fmerge_requests\u002F66","Draft: feat: adopt drupal_extension_scaffold tooling and CI",{"created_at":2392,"state":837,"web_url":2393,"title":2394},"2026-05-31T07:36:44.683Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Ffield_tokens\u002F-\u002Fmerge_requests\u002F8","feat(#3267442): support ranges, wildcards, and omitted deltas in field tokens",{"created_at":2396,"state":819,"web_url":2397,"title":2398},"2026-05-31T02:19:43.604Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fcustom_formatters\u002F-\u002Fmerge_requests\u002F11","Draft: ci: update scaffold, add GitLab CI, bump PHPStan to ^2, fix PHPStan 2.x errors",{"created_at":2400,"state":837,"web_url":2401,"title":2402},"2026-01-20T02:02:21.521Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdrupal_cms\u002F-\u002Fmerge_requests\u002F763","#3568407: remove obsolete automatic_updates_extensions from drupal_cms_admin_ui recipe",{"created_at":2404,"state":819,"web_url":2405,"title":2406},"2025-09-05T04:10:35.319Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fnext\u002F-\u002Fmerge_requests\u002F4","feat(#3545030): add workspace id to preview query",{"created_at":2408,"state":837,"web_url":2409,"title":2410},"2025-08-17T23:57:03.628Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F17","feat(#3541756): set default CORS allowedHeaders.",{"created_at":2412,"state":819,"web_url":2413,"title":2414},"2025-05-08T03:51:14.946Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fadmin_audit_trail\u002F-\u002Fmerge_requests\u002F17","Draft: #3284680: added export csv route",{"created_at":2416,"state":1110,"web_url":2417,"title":2418},"2023-06-16T04:38:06.627Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fsimple_oauth_revoke\u002F-\u002Fmerge_requests\u002F2","Issue #3367157: Add support for D10",{"created_at":2420,"state":819,"web_url":2421,"title":2422},"2023-02-27T00:01:54.487Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_user_resources\u002F-\u002Fmerge_requests\u002F3","Issue #3288150: Automated Drupal 10 compatibility fixes",{"created_at":2424,"state":1110,"web_url":2425,"title":2426},"2023-02-09T00:41:07.583Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fm4032404\u002F-\u002Fmerge_requests\u002F1","Issue #3288400: Automated Drupal 10 compatibility fixes",{"created_at":2428,"state":819,"web_url":2429,"title":2430},"2023-02-09T00:08:49.582Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fentity_display_mode\u002F-\u002Fmerge_requests\u002F1","Issue #3287230: Automated Drupal 10 compatibility fixes",{"created_at":2432,"state":837,"web_url":2433,"title":2434},"2023-02-08T23:29:59.816Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fanonymous_redirect\u002F-\u002Fmerge_requests\u002F1","Issue #3286076: Automated Drupal 10 compatibility fixes",{"created_at":2436,"state":1110,"web_url":2437,"title":2438},"2023-02-07T03:23:22.157Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fparagraphs_ee\u002F-\u002Fmerge_requests\u002F14","Issue #3288984: Automated Drupal 10 compatibility fixes",{"created_at":2440,"state":1110,"web_url":2441,"title":2442},"2023-02-07T01:11:04.418Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F12","Issue #3287092: Automated Drupal 10 compatibility fixes",{"created_at":2444,"state":837,"web_url":2445,"title":2446},"2023-02-07T00:46:55.790Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F9","Issue #3288151: Automated Drupal 10 compatibility fixes",{"created_at":2448,"state":837,"web_url":2449,"title":2450},"2022-10-12T23:02:59.783Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F11","Issue #3315030: Add a wildcard route translator service to catch all available routes",{"created_at":2452,"state":837,"web_url":2453,"title":2454},"2022-10-12T22:48:23.867Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F10","Issue #3315035: Cannot load the \"view\" entity with NULL ID",{"created_at":2456,"state":819,"web_url":2457,"title":2458},"2022-04-08T01:53:56.404Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_menu_items\u002F-\u002Fmerge_requests\u002F7","Issue #3192576: Add langcode",{"created_at":2460,"state":819,"web_url":2461,"title":2462},"2022-04-08T00:42:54.086Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdecoupled_router\u002F-\u002Fmerge_requests\u002F5","Issue #3111456: Unable to resolve path on node in other language than default",{"created_at":2464,"state":819,"web_url":2465,"title":2466},"2022-04-06T04:09:03.877Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F9","Issue #3273228: Add langcode to Views Decoupled Router integration",{"created_at":2468,"state":1110,"web_url":2469,"title":2470},"2022-03-22T03:37:58.299Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Felasticsearch_connector\u002F-\u002Fmerge_requests\u002F17","Issue #3186674: Support php 8",{"created_at":2472,"state":837,"web_url":2473,"title":2474},"2022-03-03T02:27:25.013Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Flinkit_media_library\u002F-\u002Fmerge_requests\u002F1","Issue #3267475: Add data-entity-bundle prop for better JSON:API support",{"created_at":2476,"state":837,"web_url":2477,"title":2478},"2022-02-26T00:23:00.535Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_node_preview_tab\u002F-\u002Fmerge_requests\u002F2","Issue #3266416: create url from route",{"created_at":2480,"state":819,"web_url":2481,"title":2482},"2022-02-14T02:22:16.263Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F8","Issue #3264181: Node Preview",{"created_at":2484,"state":1110,"web_url":2485,"title":2486},"2022-01-07T08:20:49.629Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdrupal\u002F-\u002Fmerge_requests\u002F1619","#3257163: Add bundle to drupal-media",{"created_at":2488,"state":837,"web_url":2489,"title":2490},"2021-11-15T21:19:32.592Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F7","Issue #3249293: Error: Call to a member function isInternal() on null in \u002Fvar\u002Fwww\u002Fhtml\u002Fweb\u002Fmodules\u002Fcontrib\u002Fdruxt\u002Fdruxt.install on line 44",{"created_at":2492,"state":837,"web_url":2493,"title":2494},"2021-10-24T00:46:07.309Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F6","Issue #3245544: Decoupled Views routes returning `null` label in Drupal 9.2",{"created_at":2496,"state":837,"web_url":2497,"title":2498},"2021-10-22T05:22:01.957Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F5","Issue #3232542: Add Report for required JSON:API resources",{"created_at":2500,"state":837,"web_url":2501,"title":2502},"2021-10-20T05:53:01.933Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F4","Issue #3206487: Add 'configurable_language' endpoint.",{"created_at":2504,"state":837,"web_url":2505,"title":2506},"2021-10-20T02:30:37.861Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F3","Issue #3244770: Add access to 'jsonapi_resource_config--jsonapi_resource_config' endpoint",{"created_at":2508,"state":837,"web_url":2509,"title":2510},"2021-10-01T04:39:23.079Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F5","Issue #3145281: Allow user to decide whether to expose the view with JSONAPI",{"created_at":2512,"state":837,"web_url":2513,"title":2514},"2021-10-01T02:25:48.242Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F4","Issue #3239967: Pagination links are broken on Drupal 9.2.x",{"created_at":2516,"state":837,"web_url":2517,"title":2518},"2021-05-11T05:15:51.313Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_menu_items\u002F-\u002Fmerge_requests\u002F5","Issue #3213317: No results for filters results in 403.",{"created_at":2520,"state":819,"web_url":2521,"title":2522},"2021-05-11T00:08:46.068Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_menu_items\u002F-\u002Fmerge_requests\u002F4","Issue #3198306: Add link to related JSON:API resources.",{"created_at":2524,"state":837,"web_url":2525,"title":2526},"2021-05-02T06:11:17.311Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_menu_items\u002F-\u002Fmerge_requests\u002F3","Issue #3211656: Caching issues with filters",{"created_at":2528,"state":837,"web_url":2529,"title":2530},"2021-05-01T02:17:45.922Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F2","Issue #3211751: Missing EntityViewDisplays",{"created_at":2532,"state":819,"web_url":2533,"title":2534},"2021-04-17T02:05:22.149Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_menu_items\u002F-\u002Fmerge_requests\u002F2","Issue #3171371: Add filters for menu tree parameters",{"created_at":2536,"state":837,"web_url":2537,"title":2538},"2021-04-14T10:51:45.107Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_menu_items\u002F-\u002Fmerge_requests\u002F1","Issue #3205065: Menu items not discoverable",{"created_at":2540,"state":837,"web_url":2541,"title":2542},"2021-03-24T11:53:31.999Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F2","Issue #3205301: Add JSON:API Url to Query preview info.",{"created_at":2544,"state":837,"web_url":2545,"title":2546},"2021-03-07T04:09:31.707Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdruxt\u002F-\u002Fmerge_requests\u002F1","Issue #3202067: Expose 'menu--menu' resource attributes.",{"created_at":2548,"state":837,"web_url":2549,"title":2550},"2021-03-01T04:43:51.902Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fjsonapi_views\u002F-\u002Fmerge_requests\u002F1","Issue #3200875: Error: Call to a member function getPagerId() on null",{"created_at":2552,"state":837,"web_url":2553,"title":2554},"2020-12-09T05:47:52.660Z","https:\u002F\u002Fgit.drupalcode.org\u002Fproject\u002Fdecoupled_router\u002F-\u002Fmerge_requests\u002F1","Issue #3187393: Linting fixes.",1788347532864]