)]}'
{
  "log": [
    {
      "commit": "082b239199cff29045641fdf586bd47481f50ddf",
      "tree": "40a437b5e25ac6eb3c967daf87ac50631fcf408d",
      "parents": [
        "5289b06dff3bf9f2e31490f33230ad0e9fcbdd56"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 13 14:25:11 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 13 14:25:11 2026 +0100"
      },
      "message": "Update dependencies\n"
    },
    {
      "commit": "5289b06dff3bf9f2e31490f33230ad0e9fcbdd56",
      "tree": "7da8195dda53c65d62b4d7790955cd36368b6602",
      "parents": [
        "a420564c1afd64442fc6e27f72a3570070e652d6"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 20:49:32 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 20:49:32 2026 +0100"
      },
      "message": "Ensure that only PMC members and committer RMs can publish to SVN\n"
    },
    {
      "commit": "a420564c1afd64442fc6e27f72a3570070e652d6",
      "tree": "d769eed05641d0fbeb00b63c71627f0e0ace5018",
      "parents": [
        "5c3859ed4b13dfe9d1884f77563d456ff8bf8ecb"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 19:03:25 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 19:03:25 2026 +0100"
      },
      "message": "Make the public SVN URL configurable\n"
    },
    {
      "commit": "5c3859ed4b13dfe9d1884f77563d456ff8bf8ecb",
      "tree": "6cbbd0a8778b9da783efa5c5fc0ae94fce759bc5",
      "parents": [
        "2755ee90d8f08b45a6349ec866effc225803e3b4"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 16:32:01 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 16:32:01 2026 +0100"
      },
      "message": "Fix a bug with download paths\n"
    },
    {
      "commit": "2755ee90d8f08b45a6349ec866effc225803e3b4",
      "tree": "da3c4b6791483c952ddbe21ce33a8251e797a941",
      "parents": [
        "ca985b8d2977c65da18dbe683dbc5419ce2a73f9"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 15:26:18 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 10 15:26:18 2026 +0100"
      },
      "message": "Render the banner from a database table edited by admins\n"
    },
    {
      "commit": "ca985b8d2977c65da18dbe683dbc5419ce2a73f9",
      "tree": "5d0903336b89a00b57b10f6c992694375ee6bf0d",
      "parents": [
        "53675524e530e74e87aadb4b07cc1260e91cf081"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 17:26:40 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 17:26:40 2026 +0100"
      },
      "message": "Convert catalogue links to buttons\n"
    },
    {
      "commit": "53675524e530e74e87aadb4b07cc1260e91cf081",
      "tree": "04b0c9daeefa11052e965dccf2f2ebff23701388",
      "parents": [
        "58079ab1b2f2cd557e6bb8b5fbd8cde98564d967"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 17:09:39 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 17:09:39 2026 +0100"
      },
      "message": "Add a major version variable for use in download paths\n"
    },
    {
      "commit": "58079ab1b2f2cd557e6bb8b5fbd8cde98564d967",
      "tree": "b40d427dd8d7980e27dd7d80804e362e19e5bd1f",
      "parents": [
        "4c585cb81a5ed277ea68db464b550c23eff0ca45"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 16:43:26 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 16:43:26 2026 +0100"
      },
      "message": "Skip empty files in lightweight license checks\n"
    },
    {
      "commit": "4c585cb81a5ed277ea68db464b550c23eff0ca45",
      "tree": "ca9ab4240c4fc82cc353e5e502220ff8db4463a9",
      "parents": [
        "8a62b3627405fcbd9aa4eac9fe059921feae4a6f"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 15:57:41 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 15:57:41 2026 +0100"
      },
      "message": "Make the revision number optional when announcing a release\n"
    },
    {
      "commit": "8a62b3627405fcbd9aa4eac9fe059921feae4a6f",
      "tree": "9edd1bff828ad43ec0d601c72d753d68b8696674",
      "parents": [
        "c24f02f478c46ca7c8ca61b4e283e80ad5a67bcc"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 15:27:42 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 15:27:42 2026 +0100"
      },
      "message": "Default the revision when the user starts a vote on their own revision\n"
    },
    {
      "commit": "c24f02f478c46ca7c8ca61b4e283e80ad5a67bcc",
      "tree": "76169219279eafd48cfdecf37b0b0002c56b4016",
      "parents": [
        "b542ea5c4eb725105577527408394b6b44bff90d"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 15:15:45 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 09 15:15:45 2026 +0100"
      },
      "message": "Fix a database query bug in the API endpoint to start a vote\n"
    },
    {
      "commit": "b542ea5c4eb725105577527408394b6b44bff90d",
      "tree": "16ca4754cbdd747adde3ec87ca9b6fd9f2e6c8db",
      "parents": [
        "7090e86b775935d6ba5c76eba2a3cbbb1d875331"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jul 09 13:58:17 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jul 09 13:58:17 2026 +0100"
      },
      "message": "#1373 - fix sort order for committee projects on other pages\n"
    },
    {
      "commit": "7090e86b775935d6ba5c76eba2a3cbbb1d875331",
      "tree": "c2cd2e8d4875525f86d510ed9f72bee2035799f8",
      "parents": [
        "085bc83f7c9829c95de4f5759a30795f897a42d6"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jul 09 12:12:27 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jul 09 12:12:27 2026 +0100"
      },
      "message": "#1358 - enforce JTI claim for workflow SSH keys\n"
    },
    {
      "commit": "085bc83f7c9829c95de4f5759a30795f897a42d6",
      "tree": "cf2b810c923d7f9fe95714cfa53babda7f7a9ee8",
      "parents": [
        "dbb5c710a0896f29a5bba3074a6235fb7db312a5"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jul 09 09:38:43 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jul 09 09:39:24 2026 +0100"
      },
      "message": "#1373 - sort order for committee projects\n"
    },
    {
      "commit": "dbb5c710a0896f29a5bba3074a6235fb7db312a5",
      "tree": "af8eb840bb23d385c176b188f17a36dc6bd9cb5b",
      "parents": [
        "60ad21235d5873be2b74288faa2e8b45fedd0406"
      ],
      "author": {
        "name": "Dave Fisher",
        "email": "dave2wave@comcast.net",
        "time": "Wed Jul 08 13:45:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 13:45:37 2026 -0700"
      },
      "message": "Update components (#1377)\n\n* Rename the components page\n\n* Users guide main page content\n\n* Rewrite the terminology page"
    },
    {
      "commit": "60ad21235d5873be2b74288faa2e8b45fedd0406",
      "tree": "cd12c205ea5cf7b844c6fdbd61f547d6eef6f3a2",
      "parents": [
        "7ad6ddd3909644b887221950517b09273b6ac2b4"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Tue Jul 07 16:26:57 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Tue Jul 07 17:49:50 2026 +0100"
      },
      "message": "#1370 - initial admin page for renaming, moving and deleting projects\n"
    },
    {
      "commit": "7ad6ddd3909644b887221950517b09273b6ac2b4",
      "tree": "ee8dd394253076a17adc60b42b80e7adc4a07fc5",
      "parents": [
        "805f70cbb1a47ec59453bff7b1cabb252efde690"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jul 07 16:38:51 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jul 07 16:38:51 2026 +0100"
      },
      "message": "Log resource usage of the server and task workers\n"
    },
    {
      "commit": "805f70cbb1a47ec59453bff7b1cabb252efde690",
      "tree": "a92662ed9a3cf67b0222cf22aaf79888fdb4add5",
      "parents": [
        "ad03086a8231d421a8f8c9c4778d2427287f87e8"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 21:00:09 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 21:00:09 2026 +0100"
      },
      "message": "Update dependencies\n"
    },
    {
      "commit": "ad03086a8231d421a8f8c9c4778d2427287f87e8",
      "tree": "41afe5daa68de3589d42599897850484d5693904",
      "parents": [
        "78f3a13022d4fda2516d5a6139fa4920f34cf6a9"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 20:56:49 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 20:56:49 2026 +0100"
      },
      "message": "Show whether an automated release key is known for a committee\n"
    },
    {
      "commit": "78f3a13022d4fda2516d5a6139fa4920f34cf6a9",
      "tree": "1630fc739214e26d504161da23ef070c615a88db",
      "parents": [
        "ea14f61a865dcf3a94eb5a54c8238e73b0a7193b"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 20:24:35 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 20:24:35 2026 +0100"
      },
      "message": "Use a single automated release signing key predicate\n"
    },
    {
      "commit": "ea14f61a865dcf3a94eb5a54c8238e73b0a7193b",
      "tree": "2fa71f20cfb07e5da876b823d3d3af825438f255",
      "parents": [
        "f2b672e1b089724b1bf53b135a863242223b5605"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 19:57:06 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 19:57:06 2026 +0100"
      },
      "message": "Fix a potential race condition in deleting a release\n"
    },
    {
      "commit": "f2b672e1b089724b1bf53b135a863242223b5605",
      "tree": "7e6fa1a85a9bac6edc144bef84c794667e83bace",
      "parents": [
        "392e6620dd5009a35ebf44b2e24a1a7830c865b2"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 19:12:10 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jul 06 19:12:10 2026 +0100"
      },
      "message": "Delete revision files only after successful announcement database writes\n"
    },
    {
      "commit": "392e6620dd5009a35ebf44b2e24a1a7830c865b2",
      "tree": "e012c1527fef2625c3934e98662dd4342e60af70",
      "parents": [
        "af5b3631a5ae2dd0ec4afd41cf2193786d2152a5"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jul 06 09:29:11 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jul 06 09:36:40 2026 +0100"
      },
      "message": "#1366 - add missing result type into result union\n"
    },
    {
      "commit": "af5b3631a5ae2dd0ec4afd41cf2193786d2152a5",
      "tree": "61ad93614b42738bc296aaf3cc6c1fe1e9047316",
      "parents": [
        "ec3fdaab3b78d2bda154efa43bb1f30938f6fd6f"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Sun Jul 05 12:55:12 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Sun Jul 05 12:55:12 2026 +0100"
      },
      "message": "Disallow deletion of keys that have been used to sign artifacts\n"
    },
    {
      "commit": "ec3fdaab3b78d2bda154efa43bb1f30938f6fd6f",
      "tree": "a3f280714920f9b7607a672104203fc84b0b111a",
      "parents": [
        "18ca75ddaa60ca8b725d8ef3020521e8b7400af0"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Sun Jul 05 12:00:55 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Sun Jul 05 12:00:55 2026 +0100"
      },
      "message": "Add missing committee guards to the storage interface\n"
    },
    {
      "commit": "18ca75ddaa60ca8b725d8ef3020521e8b7400af0",
      "tree": "4aa10af2f499290cd7127621b8f96a9523b3aed1",
      "parents": [
        "dd13e26d009f00425ca1dd95f566911ab1077b9b"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 20:54:33 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 20:54:33 2026 +0100"
      },
      "message": "Require a download URL when announcing a release, if not already set\n"
    },
    {
      "commit": "dd13e26d009f00425ca1dd95f566911ab1077b9b",
      "tree": "a39a6e40c4cae704d03a00ae414a0d4af247102a",
      "parents": [
        "052d24ce09545513f2e7d6d905cc74361d7818e3"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 20:09:23 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 20:09:23 2026 +0100"
      },
      "message": "Fix a transaction leak in the worker prefork check\n"
    },
    {
      "commit": "052d24ce09545513f2e7d6d905cc74361d7818e3",
      "tree": "3ffbaf9f073cf19cc45e1ac4fb7bef4b4549448c",
      "parents": [
        "2e4818e2acf912da98d644ad3506ad039a532616"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 19:57:54 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 19:57:54 2026 +0100"
      },
      "message": "Fix function order\n"
    },
    {
      "commit": "2e4818e2acf912da98d644ad3506ad039a532616",
      "tree": "777293a67bd2fe175819331081df4626697ac48c",
      "parents": [
        "bbe6c325d7758bf5c64f0d809eb4ea08105c9e14"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 17:42:44 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 17:42:44 2026 +0100"
      },
      "message": "Fix a few workflow related problems\n"
    },
    {
      "commit": "bbe6c325d7758bf5c64f0d809eb4ea08105c9e14",
      "tree": "bbba8eefa26c80a221b6530a9cb17da0d76261da",
      "parents": [
        "f8e50f58d0053ed917b0b22f15287bcddc9deb0d"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 16:35:54 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 16:36:28 2026 +0100"
      },
      "message": "Check action payload values as well as keys\n"
    },
    {
      "commit": "f8e50f58d0053ed917b0b22f15287bcddc9deb0d",
      "tree": "347f1fe54880eb31126b5d8a16f892832cbf24ea",
      "parents": [
        "208aea4e32c0b221f377c0214e112f8502a06002"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 16:25:12 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 16:36:28 2026 +0100"
      },
      "message": "Prefork task workers and stagger how many tasks they accept\n"
    },
    {
      "commit": "208aea4e32c0b221f377c0214e112f8502a06002",
      "tree": "63611c486b3fd9903c64f292a6660e8389d1a360",
      "parents": [
        "d318c03cb433e62f7be569a2a2b29dc6d46b77f9"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jul 03 16:00:23 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jul 03 16:22:45 2026 +0100"
      },
      "message": "#1363 - send email when release is announced or picked up by the SVN watcher\n"
    },
    {
      "commit": "d318c03cb433e62f7be569a2a2b29dc6d46b77f9",
      "tree": "310992a971fe26d083c3f643d5f075d0c6b9018b",
      "parents": [
        "935638589f9aae48844b6d5f9f1c968f1b4dd538"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 15:58:19 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jul 03 15:58:44 2026 +0100"
      },
      "message": "Prevent published Alembic migrations from being modified\n"
    },
    {
      "commit": "935638589f9aae48844b6d5f9f1c968f1b4dd538",
      "tree": "f739fc865adabc6d4046b490d3d976ad0be765e9",
      "parents": [
        "6e010e94991c587d444f9e75400dc672173ec095"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jul 03 13:42:14 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jul 03 13:42:14 2026 +0100"
      },
      "message": "#1355 - don\u0027t ignore whl files from artifacts, just releases\n"
    },
    {
      "commit": "6e010e94991c587d444f9e75400dc672173ec095",
      "tree": "8a7fb9c890cedc4112f9f963015d4ec23fa0e048",
      "parents": [
        "744a0ed9e4e6412743f3a7035a858bc274aee7e2"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jul 03 09:32:10 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jul 03 09:32:10 2026 +0100"
      },
      "message": "#1355 - fixes for java module/component path artifacts\n"
    },
    {
      "commit": "744a0ed9e4e6412743f3a7035a858bc274aee7e2",
      "tree": "1e87eea3fb0dd3812084be24169de1f90fbae51d",
      "parents": [
        "060cbdd46020bfb49ed80a83058c1f81049dd68d"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 20:31:35 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 20:31:35 2026 +0100"
      },
      "message": "Remove the concurrency group for client compatibility tests\n"
    },
    {
      "commit": "060cbdd46020bfb49ed80a83058c1f81049dd68d",
      "tree": "95dfce6ec8c21a96797e8fbe5a3de96cd515f958",
      "parents": [
        "f677be2d16de5f9a266fdd3efdf160b7ac3fc530"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 20:20:22 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 20:20:22 2026 +0100"
      },
      "message": "Ensure that unit test skips in CI are correctly scoped\n"
    },
    {
      "commit": "f677be2d16de5f9a266fdd3efdf160b7ac3fc530",
      "tree": "614acb58091dce5ef4f7940b1ccffa7cbe316d4b",
      "parents": [
        "92bee51e1b00117dc1149a73678400c59963471c"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:28:10 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:48:39 2026 +0100"
      },
      "message": "Add a migration to repair corrupt databases\n"
    },
    {
      "commit": "92bee51e1b00117dc1149a73678400c59963471c",
      "tree": "05437783dd626b5786efb1ba2ec1c8756ba9325f",
      "parents": [
        "f18de4a0cb8be8f4ca3387e145dedc84f32e62e7"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 17:13:59 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:41:23 2026 +0100"
      },
      "message": "Use the contingent approvals service to archive or delete projects\n"
    },
    {
      "commit": "f18de4a0cb8be8f4ca3387e145dedc84f32e62e7",
      "tree": "6754112be4a63e7cf10dd971c63cba92cb359f4d",
      "parents": [
        "dbbebf18f5c4954ca61935a6f48b1278e7991220"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jul 01 17:38:00 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:41:23 2026 +0100"
      },
      "message": "Improve the CI logging of Playwright errors\n"
    },
    {
      "commit": "dbbebf18f5c4954ca61935a6f48b1278e7991220",
      "tree": "06721746fc4f2e9f21f92a82bcb998f5b5af758e",
      "parents": [
        "469bf808dd1ed43530ead8f463ec3db6907ee3ef"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jul 02 16:08:29 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:41:23 2026 +0100"
      },
      "message": "#1355 - take account of airflow release patterns\n"
    },
    {
      "commit": "469bf808dd1ed43530ead8f463ec3db6907ee3ef",
      "tree": "bd52040a0c8e18673c055091afe5f88e0f2f02d8",
      "parents": [
        "95e1939bf7949f4aa8cf304ce7fa086b7ddab1d0"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jul 01 16:22:57 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:41:23 2026 +0100"
      },
      "message": "Add tests for action interfaces\n"
    },
    {
      "commit": "95e1939bf7949f4aa8cf304ce7fa086b7ddab1d0",
      "tree": "ba69bba35c71c2ee48b968faa9b2afcaafadda74",
      "parents": [
        "ee4faf58c906ce0651556badbcc667ff161fd0dd"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jul 01 16:22:02 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:41:23 2026 +0100"
      },
      "message": "Add PyYAML to the test dependencies\n"
    },
    {
      "commit": "ee4faf58c906ce0651556badbcc667ff161fd0dd",
      "tree": "bdd7ce3754dbeeef5bba70b204d3c6b272a8fea8",
      "parents": [
        "929b170dcf631254dbf67a6096a6e44afc4570b1"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jul 01 16:21:16 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:41:23 2026 +0100"
      },
      "message": "Add debugging for a Playwright tests failure\n"
    },
    {
      "commit": "929b170dcf631254dbf67a6096a6e44afc4570b1",
      "tree": "4d95c91a4c3b38394dbe97ab1bb9f755dea357a0",
      "parents": [
        "ee26c314395a32983c28f497854f18f3ab3bd06a"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Wed Jul 01 15:31:59 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jul 02 19:41:23 2026 +0100"
      },
      "message": "#478, #1355 - store the full dist directory on artifacts to keep release links stable\n\nCombines:\n- #478 - space for retired committee artifacts to retain their path on archive.a.o\n- #1355 - make sure artifact path is fully stored, to maintain integrity of past release links\n"
    },
    {
      "commit": "ee26c314395a32983c28f497854f18f3ab3bd06a",
      "tree": "00f7c33c549164ac8d6828ccbd80fa8302ad6807",
      "parents": [
        "a479d7f24fe6c0305d693aeb8e7bd9009434673c"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 30 14:05:30 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jul 01 14:41:13 2026 +0100"
      },
      "message": "Update dependencies\n"
    },
    {
      "commit": "a479d7f24fe6c0305d693aeb8e7bd9009434673c",
      "tree": "2c0e3ada878df5948322de76e17fd302d57ddb4e",
      "parents": [
        "517ccc938990f97c8b42447f87c613a79bc48eb9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 30 20:25:01 2026 +0000"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jul 01 14:30:53 2026 +0100"
      },
      "message": "Bump actions/setup-python from 6.2.0 to 6.3.0\n\nBumps [actions/setup-python](https://github.com/actions/setup-python) from 6.2.0 to 6.3.0.\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/a309ff8b426b58ec0e2a45f0f869d46889d02405...ece7cb06caefa5fff74198d8649806c4678c61a1)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n  dependency-version: 6.3.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "517ccc938990f97c8b42447f87c613a79bc48eb9",
      "tree": "7bcdba65b4eff14552d1aa42f7fb007a6dc070d7",
      "parents": [
        "258b186f1334722b430cc49ade153829bb98ed04"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 30 20:23:33 2026 +0000"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jul 01 14:23:22 2026 +0100"
      },
      "message": "Bump actions/cache from 5.0.5 to 6.1.0\n\nBumps [actions/cache](https://github.com/actions/cache) from 5.0.5 to 6.1.0.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/27d5ce7f107fe9357f9df03efb73ab90386fccae...55cc8345863c7cc4c66a329aec7e433d2d1c52a9)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 6.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "258b186f1334722b430cc49ade153829bb98ed04",
      "tree": "c85678b716b78bd8cb3093d8426c7fc51faf8cb9",
      "parents": [
        "629ca8a118c70233a9ffd05b71e0daab6494c440"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Tue Jun 30 13:52:29 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Tue Jun 30 13:53:00 2026 +0100"
      },
      "message": "#1321, #1344 - Add security contact, threat model and download path suffix to project metadata/policy\n"
    },
    {
      "commit": "629ca8a118c70233a9ffd05b71e0daab6494c440",
      "tree": "58219d29bbb1329e4b5b76bfe71e71dcd8308e02",
      "parents": [
        "efcde97bc875b7a10f5069ad4d5a058a787581c5"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Tue Jun 30 13:51:55 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Tue Jun 30 13:53:00 2026 +0100"
      },
      "message": "#478 - allow releases of archived projects to be downloaded, and make sure they come from archive.a.o.\n"
    },
    {
      "commit": "efcde97bc875b7a10f5069ad4d5a058a787581c5",
      "tree": "e1397ab59610796ff1ab7aa38c38d033c8f59fd6",
      "parents": [
        "ff55abc6fa9d0c2253a17af925d2b0c3b8322cbc"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jun 29 16:27:38 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Tue Jun 30 13:52:59 2026 +0100"
      },
      "message": "Fix calver support for cycle matching\n"
    },
    {
      "commit": "ff55abc6fa9d0c2253a17af925d2b0c3b8322cbc",
      "tree": "5af6a8ad2d1b164ed4600b3470211cdfc6fffe37",
      "parents": [
        "4e0ee4f38a613411a93e1bf7d4d207ba4d0ab70e"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 29 20:15:06 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 29 20:15:06 2026 +0100"
      },
      "message": "Reuse directories when publishing to downloads\n"
    },
    {
      "commit": "4e0ee4f38a613411a93e1bf7d4d207ba4d0ab70e",
      "tree": "a83436eb46c0bda8fb86126f50b44a13f57ce693",
      "parents": [
        "d198f701b369197c537ea20af6ef05633addb08d"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 29 19:42:35 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 29 19:42:35 2026 +0100"
      },
      "message": "Add a workflow to check client compatibility\n"
    },
    {
      "commit": "d198f701b369197c537ea20af6ef05633addb08d",
      "tree": "49c6ab92e0a31763c0fe9af73a44657b60bc510e",
      "parents": [
        "ac731865487ce117f03301810fd9e817ada6ccd9"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 29 16:03:32 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 29 16:03:32 2026 +0100"
      },
      "message": "Update to Python version 3.14\n"
    },
    {
      "commit": "ac731865487ce117f03301810fd9e817ada6ccd9",
      "tree": "1f3edd020a1e9f3debdd01b05816c3ca77447d74",
      "parents": [
        "b983a270682dc09d710dac0bea60aa7f0f35a450"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jun 29 11:15:15 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jun 29 11:15:15 2026 +0100"
      },
      "message": "Fix catalog committee sorting\n"
    },
    {
      "commit": "b983a270682dc09d710dac0bea60aa7f0f35a450",
      "tree": "2bdc1cbee0678d19e0bec749cefeadbb31aa41d5",
      "parents": [
        "8c3dbd87890225d89b6b53cd656a3d452e4c02dc"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 17:52:44 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jun 29 09:19:13 2026 +0100"
      },
      "message": "#478 - Add is_archived for releases to allow null dates where we don\u0027t have one\n"
    },
    {
      "commit": "8c3dbd87890225d89b6b53cd656a3d452e4c02dc",
      "tree": "8097280b10806a540db2ad5d571a86be61868f1f",
      "parents": [
        "e4c88a741c09daacb368c824d3fa40d1b3ba1d41"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 15:42:54 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jun 29 09:19:12 2026 +0100"
      },
      "message": "#478 - a couple of extra project remaps\n"
    },
    {
      "commit": "e4c88a741c09daacb368c824d3fa40d1b3ba1d41",
      "tree": "336e65bde13a70ad87ee4c373a43e1f4b2ced9f3",
      "parents": [
        "3a2e28e794a41b918d03ff3fc1a5c515a6ce8887"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 15:04:17 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Mon Jun 29 09:19:07 2026 +0100"
      },
      "message": "#478 - fix classifier for packaged artifacts\n"
    },
    {
      "commit": "3a2e28e794a41b918d03ff3fc1a5c515a6ce8887",
      "tree": "b59c6da21000f671d7b5baacc08f6edf858a80c6",
      "parents": [
        "ef71b4fbeb392b2c40e9530c2229cb5b26b04d23"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 20:52:42 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 20:52:42 2026 +0100"
      },
      "message": "Ensure that the Test Client project is always present\n"
    },
    {
      "commit": "ef71b4fbeb392b2c40e9530c2229cb5b26b04d23",
      "tree": "12b33cf4b57a03a4860dcd0f20ac9c705467a988",
      "parents": [
        "6565f57a815d8162b385fb8c52be8a64294f28b7"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 18:00:26 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 18:00:26 2026 +0100"
      },
      "message": "Fix a code warning to prepare for Python 3.14\n"
    },
    {
      "commit": "6565f57a815d8162b385fb8c52be8a64294f28b7",
      "tree": "76be13041ad5278ceaf9d95d9ade4ee1ad451fbc",
      "parents": [
        "0bc10cfaeb18ddb9aba31e25f43eb05290846c8d"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 17:39:10 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 17:39:10 2026 +0100"
      },
      "message": "Add a simple test mode endpoint to issue PATs\n"
    },
    {
      "commit": "0bc10cfaeb18ddb9aba31e25f43eb05290846c8d",
      "tree": "2bb8430170b299aac99b9bd1966c837503b3d28e",
      "parents": [
        "26a22ad0a7f3c71987f0a68fb9e44e4c52fb7cd6"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 17:30:42 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 17:30:42 2026 +0100"
      },
      "message": "Prepare a type for Python 3.14\n"
    },
    {
      "commit": "26a22ad0a7f3c71987f0a68fb9e44e4c52fb7cd6",
      "tree": "e45383e8d0d34bc234e142345f5cd6b9078f0140",
      "parents": [
        "d3556cef4d9dfefcd334929e25510fa38eb89446"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 16:47:49 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 16:47:49 2026 +0100"
      },
      "message": "Make endpoint wrapping compatible with Python 3.14\n"
    },
    {
      "commit": "d3556cef4d9dfefcd334929e25510fa38eb89446",
      "tree": "0133db87cc8d49d3aa1598a30c48c5b3c9217d04",
      "parents": [
        "bd856f689bb732510db9cead2b89a0942443e8fd"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 16:47:17 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 26 16:47:17 2026 +0100"
      },
      "message": "Fix function orders in unit tests\n"
    },
    {
      "commit": "bd856f689bb732510db9cead2b89a0942443e8fd",
      "tree": "9c10870c53f972170e8d2682381c6645064a046a",
      "parents": [
        "3b892af2d59d1d9de1f7ca1d35b79a1d9610dce3"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 12:26:40 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 12:31:11 2026 +0100"
      },
      "message": "#478 - reorganise dist.a.o logic and address another few issues\n"
    },
    {
      "commit": "3b892af2d59d1d9de1f7ca1d35b79a1d9610dce3",
      "tree": "9275a74b1f174d2d8e602e3e7c9f1d7c14690e6f",
      "parents": [
        "5ed0583b781451cb947a480aa80d8cc897762c94"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jun 25 15:55:08 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 12:31:11 2026 +0100"
      },
      "message": "#478 - fix remaining project keys and restore denial of + in project key\n"
    },
    {
      "commit": "5ed0583b781451cb947a480aa80d8cc897762c94",
      "tree": "ab41e561cdf4628bfa6581d97d9491474aad8f66",
      "parents": [
        "de5915e26de1d22ffd3e44a40aa8737b979a9485"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jun 25 15:21:54 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 12:31:11 2026 +0100"
      },
      "message": "#478 - remove attic- prefix from project keys\n"
    },
    {
      "commit": "de5915e26de1d22ffd3e44a40aa8737b979a9485",
      "tree": "f13b6426a2924b257cdf9f5214837458324e984d",
      "parents": [
        "fd9b6f9944416e52a8059aa24e01e9d315bd7787"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Thu Jun 25 09:51:07 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Fri Jun 26 12:31:11 2026 +0100"
      },
      "message": "#1319 - explicit hard code KEYS file locations to dist/release instead of dist/atr (remove after alpha)\n"
    },
    {
      "commit": "fd9b6f9944416e52a8059aa24e01e9d315bd7787",
      "tree": "4316115f9a1e7796a706c7154be95018b3b56e6d",
      "parents": [
        "eb4f2ebf2930e1009788ca686dc269ebeb1c0274"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:29:27 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:29:27 2026 +0100"
      },
      "message": "Migrate from yyjson to orjson and jsonpatch\n"
    },
    {
      "commit": "eb4f2ebf2930e1009788ca686dc269ebeb1c0274",
      "tree": "2c036c69b4a93375bacd351702fb3a60cb43b948",
      "parents": [
        "8a2464f20ee8eb7e28b5ca4ed462d7cfa0714250"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:13:24 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:13:24 2026 +0100"
      },
      "message": "Add a couple of JSON dependencies\n"
    },
    {
      "commit": "8a2464f20ee8eb7e28b5ca4ed462d7cfa0714250",
      "tree": "cc6d801687f51b5b4c4e01d28eb63cfaddb5df82",
      "parents": [
        "536afa089d6c77ea69fe1e0fdef0364dfc61c72a"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:12:44 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:12:44 2026 +0100"
      },
      "message": "Update dependencies\n"
    },
    {
      "commit": "536afa089d6c77ea69fe1e0fdef0364dfc61c72a",
      "tree": "0dcbf0b8eca1c04ca3c880a0bc967e5a01bdc472",
      "parents": [
        "f25e4960e544815e33d773daf67b3b71d6b7f9a4"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:11:39 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 19:11:39 2026 +0100"
      },
      "message": "Fix function order in SBOM modules\n"
    },
    {
      "commit": "f25e4960e544815e33d773daf67b3b71d6b7f9a4",
      "tree": "ab5f738b9ffdae1d48b3d27a7fec3d8fba8eef37",
      "parents": [
        "493783ad8a21d3ea0a0da645895f281386f3593e"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 17:12:47 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Thu Jun 25 17:45:16 2026 +0100"
      },
      "message": "Split service writes into distinct capability sets\n"
    },
    {
      "commit": "493783ad8a21d3ea0a0da645895f281386f3593e",
      "tree": "dbd85380cb9aaa659b46a65b3fea08b9e832d5dc",
      "parents": [
        "6d1eac51f70b274c91bdf32af2f34d48fb0a8c46"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 19:38:52 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 19:39:19 2026 +0100"
      },
      "message": "Fix storage interface writer variable names\n"
    },
    {
      "commit": "6d1eac51f70b274c91bdf32af2f34d48fb0a8c46",
      "tree": "5e6ac646aad2a90f459dab3b6590ed5fa3ecebd7",
      "parents": [
        "770c39eee1f03ef8d116e84706d73d549c3235bb"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Wed Jun 24 16:38:58 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Wed Jun 24 16:47:00 2026 +0100"
      },
      "message": "#478, #479 - fix some path issues with certain PMCs\n"
    },
    {
      "commit": "770c39eee1f03ef8d116e84706d73d549c3235bb",
      "tree": "050d2450527f9b42762644c84c38de650c612e46",
      "parents": [
        "87d228e11488d091db7bc6bfd2c6953b32ad2e34"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 16:02:19 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 16:02:19 2026 +0100"
      },
      "message": "Fix a race condition in project deletion\n"
    },
    {
      "commit": "87d228e11488d091db7bc6bfd2c6953b32ad2e34",
      "tree": "196a1ae4433c7ec3bfd96034116e80e704b13c99",
      "parents": [
        "5fb124e81270bcb04d02949d8261a5639e087f49"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 15:33:44 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 15:33:44 2026 +0100"
      },
      "message": "Remove all remaining revision features from the finish phase\n"
    },
    {
      "commit": "5fb124e81270bcb04d02949d8261a5639e087f49",
      "tree": "fea33db79e951945d515b674518df8dc27279aa4",
      "parents": [
        "76a745aaa811862b820b708c4a96d85a227df78a"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 14:45:04 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 14:45:04 2026 +0100"
      },
      "message": "Make navigation elements on revision pages consistent\n"
    },
    {
      "commit": "76a745aaa811862b820b708c4a96d85a227df78a",
      "tree": "87076906e5ef855152339624344acac37c5b8458",
      "parents": [
        "c4ca04709bc591c92b48e7e4c00aba38a9ae5893"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 14:13:18 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Wed Jun 24 14:13:29 2026 +0100"
      },
      "message": "Limit how many nested files can be published in a release\n"
    },
    {
      "commit": "c4ca04709bc591c92b48e7e4c00aba38a9ae5893",
      "tree": "ae171f0387e773c0d3d8ea724506e239773a2263",
      "parents": [
        "df1fee3c025c8e7159953e5dbeb4b818e62a538b"
      ],
      "author": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Wed Jun 24 11:08:14 2026 +0100"
      },
      "committer": {
        "name": "Alastair McFarlane",
        "email": "arm@apache.org",
        "time": "Wed Jun 24 11:08:14 2026 +0100"
      },
      "message": "#1333 - include date of release in artifact model and add boolean for ATR-managed releases.\n"
    },
    {
      "commit": "df1fee3c025c8e7159953e5dbeb4b818e62a538b",
      "tree": "fb0b1944adf0f050b33ec75557c64c79753cfa66",
      "parents": [
        "21d8766a9b2bb0aa56065fded7570e565f693b4e"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 20:06:11 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 20:06:11 2026 +0100"
      },
      "message": "Recognise SBOM files named using the Maven plugin convention\n"
    },
    {
      "commit": "21d8766a9b2bb0aa56065fded7570e565f693b4e",
      "tree": "c9720142f25cb000d5e5a7f7b3329f988b3b6ac9",
      "parents": [
        "564ee3643ea5af1b8c3555e9410099b238fed7a8"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:57:09 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:57:09 2026 +0100"
      },
      "message": "Allow users to start expedited releases\n"
    },
    {
      "commit": "564ee3643ea5af1b8c3555e9410099b238fed7a8",
      "tree": "c35af5d3820f1b59f71559cfe9602492bf5ad8e7",
      "parents": [
        "35b6ee43664f37ffdb2351db6ad42b3983179026"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:45:12 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:45:12 2026 +0100"
      },
      "message": "Use a different colour for embargoed release versions\n"
    },
    {
      "commit": "35b6ee43664f37ffdb2351db6ad42b3983179026",
      "tree": "614e36d9197b798f419a08c711b60dfc30f76d9d",
      "parents": [
        "73f4b446343ebed719d24b10a8d442dbb1c5e664"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:20:14 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:20:14 2026 +0100"
      },
      "message": "Improve the display of expedited releases when embargoed\n"
    },
    {
      "commit": "73f4b446343ebed719d24b10a8d442dbb1c5e664",
      "tree": "f6d7d2610123886d36a33ef37a101e74b0859ec3",
      "parents": [
        "53ca7b9def1c35357b688644957eb20f48fe94c2"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:02:18 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 19:02:18 2026 +0100"
      },
      "message": "Fix the vote resolution form for expedited releases\n"
    },
    {
      "commit": "53ca7b9def1c35357b688644957eb20f48fe94c2",
      "tree": "914b4a828cc0561ce5b184b6d27621687b4b81fc",
      "parents": [
        "24550d2a54d44eaadc0e4f1c7ef7272edf0a553d"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 17:55:42 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 17:55:42 2026 +0100"
      },
      "message": "Fix a problem with one form field not being monospace\n"
    },
    {
      "commit": "24550d2a54d44eaadc0e4f1c7ef7272edf0a553d",
      "tree": "af972248ad801d7add28e53cdca3f8650f2146bc",
      "parents": [
        "df802f25aa58c7ef3139252b6459bdf72532090a"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 17:51:13 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 17:51:13 2026 +0100"
      },
      "message": "Move the expedited release badge to the release information header\n"
    },
    {
      "commit": "df802f25aa58c7ef3139252b6459bdf72532090a",
      "tree": "9c806f493dc0f54785b00e903dd2c6c45654d8bb",
      "parents": [
        "b73ed39469f2af71908a4147f5e9282d01406a15"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 17:36:43 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 17:36:43 2026 +0100"
      },
      "message": "Fix an inconsistency in the storage interface\n"
    },
    {
      "commit": "b73ed39469f2af71908a4147f5e9282d01406a15",
      "tree": "7a9e123ca93ebc937bee3d6459ad86fd7266c1ca",
      "parents": [
        "4a7a6ab1a770f49a492c005723df5c35b856d2f8"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 15:56:10 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 15:56:10 2026 +0100"
      },
      "message": "Add badges for embargoed releases on related pages\n"
    },
    {
      "commit": "4a7a6ab1a770f49a492c005723df5c35b856d2f8",
      "tree": "480706776c9e4688d6678e65a77574fa7b64fc42",
      "parents": [
        "a9d9a49d7bbc976a1dd8188ada876de20cd858c7"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 14:58:38 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 14:58:38 2026 +0100"
      },
      "message": "Fix some bugs related to expedited releases\n"
    },
    {
      "commit": "a9d9a49d7bbc976a1dd8188ada876de20cd858c7",
      "tree": "3254c74ac1b804eb4b41e76a08dafbf172bc0b0b",
      "parents": [
        "e17b9851c04623446a089b641deb4a9a7e8f8064"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 14:16:17 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Tue Jun 23 14:16:17 2026 +0100"
      },
      "message": "Support resolving votes on expedited releases\n"
    },
    {
      "commit": "e17b9851c04623446a089b641deb4a9a7e8f8064",
      "tree": "e8fc1a4fd301965433749f25452bcb85e0a5b191",
      "parents": [
        "f495dd4f6f8454682db12ec55a82836222795b9d"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 20:48:58 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 20:48:58 2026 +0100"
      },
      "message": "Integrate expedited releases into the code to start a vote\n"
    },
    {
      "commit": "f495dd4f6f8454682db12ec55a82836222795b9d",
      "tree": "3057f08e4b3bfb88d98bbd0a623831b898c4fda1",
      "parents": [
        "9d74b42367127436a989951a94ca0df5b96eb383"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 18:15:35 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 18:15:35 2026 +0100"
      },
      "message": "Enforce expedited release permissions for reads\n"
    },
    {
      "commit": "9d74b42367127436a989951a94ca0df5b96eb383",
      "tree": "14f3607b321df31411dfe738d8d42f26888d0c36",
      "parents": [
        "992aa630af9b64fb0cb883a2818cfcf002e8ca1b"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 16:55:27 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 16:55:27 2026 +0100"
      },
      "message": "Fix function order in the API blueprints module\n"
    },
    {
      "commit": "992aa630af9b64fb0cb883a2818cfcf002e8ca1b",
      "tree": "295cb9fe377f4be683e53052d6f3cd18a164a7df",
      "parents": [
        "03bc7d82834f95bd165f7388c8653d88126dbf20"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:26:21 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:26:21 2026 +0100"
      },
      "message": "Update dependencies\n"
    },
    {
      "commit": "03bc7d82834f95bd165f7388c8653d88126dbf20",
      "tree": "9e867c2db8b606b942c4d058b2b37374cfa8f009",
      "parents": [
        "da773ddfc3ee686f72b90b7393ae7ee5e7fc7944"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:23:49 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:23:49 2026 +0100"
      },
      "message": "Update DOMPurify with a five day cooldown due to a vulnerability\n"
    },
    {
      "commit": "da773ddfc3ee686f72b90b7393ae7ee5e7fc7944",
      "tree": "6e7e1c918ca4bbd65892365e1a719884f26f1072",
      "parents": [
        "126ef6d92e2766c82b1f7a28f0fa3aa13fbe76fb"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:16:54 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:16:54 2026 +0100"
      },
      "message": "Enforce expedited release permissions for writes in the storage interface\n"
    },
    {
      "commit": "126ef6d92e2766c82b1f7a28f0fa3aa13fbe76fb",
      "tree": "5b9fcd9ea1e34fcd7739084175bfd2c9cbc98c1f",
      "parents": [
        "5edf59676981b2977c4eab78dbb717a87993aa9c"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:14:29 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Mon Jun 22 15:14:29 2026 +0100"
      },
      "message": "Fix function order\n"
    },
    {
      "commit": "5edf59676981b2977c4eab78dbb717a87993aa9c",
      "tree": "bed2d5348a5f4b6fea6b328d33403623a32a5e22",
      "parents": [
        "f9da8b52043fe5983d84b97e8805c49c37c8a1f3"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 19 17:45:17 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 19 17:45:17 2026 +0100"
      },
      "message": "Add an expedited property to releases\n"
    },
    {
      "commit": "f9da8b52043fe5983d84b97e8805c49c37c8a1f3",
      "tree": "8473ad373f6be2746ce1f49927a59e4c68418977",
      "parents": [
        "496e0f61780843d402d883bb15a9e22a019be598"
      ],
      "author": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 19 17:12:07 2026 +0100"
      },
      "committer": {
        "name": "Sean B. Palmer",
        "email": "sean@miscoranda.com",
        "time": "Fri Jun 19 17:12:07 2026 +0100"
      },
      "message": "Document and improve the consistency of some role selections\n"
    }
  ],
  "next": "496e0f61780843d402d883bb15a9e22a019be598"
}
