)]}'
{
  "log": [
    {
      "commit": "ef63a30d8fd1e8797edbf8a4d67dbdceb5accb8a",
      "tree": "634984ff91ee0dc0d4d58dc6fa14e51c2f75b4b5",
      "parents": [
        "b417eeaf41bcf062b4e233060c6e54d39bc582c9"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Wed Feb 25 12:42:42 2026 +0100"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Feb 25 11:36:47 2026 -0500"
      },
      "message": "export-keyring: Add option to update certificate header\n\nSometimes the header changes even though the keydata did not. That\nhappens for example when a key expired or when the way the header is\ngenerated changes (see e.g.\nhttps://lore.kernel.org/tools/20260129100727.950475-2-u.kleine-koenig@baylibre.com/).\n\nAdd an option --update-header to write the certificate files in this\ncase, too.\n\nCaching the result of the new get_header function (e.g. using\nfunctools.cache or functools.lru_cache(maxsize\u003d1)) brings hardly any\nruntime advantage in my tests, so I didn\u0027t add them.\n\nLink: https://patch.msgid.link/20260225114241.2609196-2-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b417eeaf41bcf062b4e233060c6e54d39bc582c9",
      "tree": "7585d500a1b258046ad28db2d925f2c45f6a42f0",
      "parents": [
        "7d1694f954fe486332c3eac65b675a7c350ed7a6"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Thu Jan 29 11:07:22 2026 +0100"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue Feb 24 17:48:11 2026 -0500"
      },
      "message": "gpg_run_command: Set output charset to utf-8\n\nIt\u0027s 2026 and still the certificate info in the kernel pgpkeys repo is\nencoded in latin1. This happens as the call to gpg happens with an\n(nearly) empty environment that doesn\u0027t contain locale information and\nGnuPG defaults to latin1 (aka iso8859-1) in this case.\n\nThis creates difficulties to send patches to these files by mail as\nthese are usually transported in UTF-8 and patatt only supports UTF-8\nfiles.\n\nSo instruct gpg to output the data in UTF-8.\n\nNote that the graph files (both txt and svg) already use UTF-8.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e\nLink: https://patch.msgid.link/20260129100727.950475-2-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7d1694f954fe486332c3eac65b675a7c350ed7a6",
      "tree": "42b025569712c7ecb333c60f06c18d86fc62d977",
      "parents": [
        "a586ee5adb4ad77038c6ba0d4b39841b65c3108c"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue Sep 30 11:18:00 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue Sep 30 11:18:00 2025 -0400"
      },
      "message": "make-sqlitedb: fix logic error handling revoked uids\n\nWhen we encountered a revoked uid, we flipped is_revuid to True and\nnever flipped it to False upon encountering the next uid in the same\npubkey, which was causing us to consider all remaining uids as revoked\nfor the same pubkey.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a586ee5adb4ad77038c6ba0d4b39841b65c3108c",
      "tree": "d4ec0cfbbaa7ff85e4b75042ca21f66aa99987a4",
      "parents": [
        "bedc4e5b7fae6f77fbb03732f763065182851cc1"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Sep 29 13:36:32 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Sep 29 13:36:53 2025 -0400"
      },
      "message": "export-keyring: Clean up code formatting for improved readability\n\nMinor tweak to remove a linter warning.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "bedc4e5b7fae6f77fbb03732f763065182851cc1",
      "tree": "5f5fea19b69ce15649dc1d5a05fd437260485426",
      "parents": [
        "b2ea16b5c4d9b283151fd5ec512cd624bba3d82c",
        "449d09274759e22ea0a31bd90015d8551e2dc16f"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 13:38:35 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 13:39:37 2025 -0400"
      },
      "message": "Merge patch series \"A random collection of patches to export-keyring\"\n\nMerge series from Uwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e that\nimproves export-keyring functionality.\n\nLink: https://patch.msgid.link/cover.1749831371.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "449d09274759e22ea0a31bd90015d8551e2dc16f",
      "tree": "5f5fea19b69ce15649dc1d5a05fd437260485426",
      "parents": [
        "dc807b9d40be0025eba7370d0fefab635547ce2b"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Fri Jun 13 18:18:59 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 13:35:03 2025 -0400"
      },
      "message": "export-keyring: Add an option to ignore the linter check\n\nThis is sensible to use in certain limited cases. One of these is to\nforce certificates that don\u0027t pass the linter check to be cleaned.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e\nLink: https://patch.msgid.link/4051e0202ae6e80dc6402de35ca4ee7ebbd879a2.1749831371.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "dc807b9d40be0025eba7370d0fefab635547ce2b",
      "tree": "46e809eefa162c98779df66fb15ea0f9c661de2e",
      "parents": [
        "a2061c22a60fbd6d1721d642c8b48ca3fe0f560f"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Fri Jun 13 18:18:58 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 13:35:03 2025 -0400"
      },
      "message": "export-keyring: Add cmdline option --verbose\n\nThis enables emitting log messages at debug level.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e\nLink: https://patch.msgid.link/d0cee30f00abe0b0b0502b8630b35839f020e49d.1749831371.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a2061c22a60fbd6d1721d642c8b48ca3fe0f560f",
      "tree": "f94a43a7a6520a5414bc6b174e3614aa77e36c1b",
      "parents": [
        "30a9c74f47ac20b28fcd0e4e46de64dbdb7e14d8"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Fri Jun 13 18:18:57 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 13:35:03 2025 -0400"
      },
      "message": "export-keyring: Improve logging\n\nIssue message about not updating a key at info level and add another\nhelpful debug message.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e\nLink: https://patch.msgid.link/e28f461d9ac292133fb68a52533e83be6d668a4a.1749831371.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "30a9c74f47ac20b28fcd0e4e46de64dbdb7e14d8",
      "tree": "2a3a7dc478dd797d132aa297d8ceb9ba289c8ce6",
      "parents": [
        "b2ea16b5c4d9b283151fd5ec512cd624bba3d82c"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Fri Jun 13 18:18:56 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 13:35:03 2025 -0400"
      },
      "message": "export-keyring: Skip graph generation if the trust path didn\u0027t change\n\nIt can happen that a key changes without affecting the trust paths. That\nmight be a new (or expired) subkey or a new signature that doesn\u0027t\nmatter for the trust paths. So always compare the trust txt file with\nthe new paths to prevent noop changes in the svg representation.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e\nLink: https://patch.msgid.link/204f68d615855ac880f12d2de046fc694466b497.1749831371.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b2ea16b5c4d9b283151fd5ec512cd624bba3d82c",
      "tree": "05824ca365ace7d8c712fa2b457c52709e09aa64",
      "parents": [
        "5d335c4d740a12a092ecac3eb105194bb5c0a618"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 11:14:13 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Jun 13 11:14:13 2025 -0400"
      },
      "message": "Add DCO and mention how to send in patches\n\nWe should require DCO sign-off.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "5d335c4d740a12a092ecac3eb105194bb5c0a618",
      "tree": "42cd9933d71f495a2bd047bd6f0ad01b350152f8",
      "parents": [
        "a3f707922beca2bb0cec46a1d9168be4184ff3e4"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri May 23 09:05:48 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri May 23 09:05:48 2025 -0400"
      },
      "message": "Only run linter on newly added keys\n\nWe don\u0027t want to prevent updates to existing keys, even if they don\u0027t\npass linter checks.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a3f707922beca2bb0cec46a1d9168be4184ff3e4",
      "tree": "7f422f451c347faa85dc9bdf14da5b5da3c62a78",
      "parents": [
        "ea2aa13d976664ca9b6b646a988c1c686f97742e"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Thu May 22 09:21:58 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Thu May 22 09:21:58 2025 -0400"
      },
      "message": "Add typing data and introduce a --use-weak-algos flag\n\nWhile adding a --use-weak-algos flag to make-sqlite and export-keyring,\nI also added a bunch of typing data so we bring in the project into the\nroaring 20\u0027s.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "ea2aa13d976664ca9b6b646a988c1c686f97742e",
      "tree": "0fef531330d0b06a33d9bd529d1fb99fd8bc5fd0",
      "parents": [
        "442c5beb0871a1a0f0f4786b7314e24a91bd0c96"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 17:04:56 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 17:04:56 2025 -0400"
      },
      "message": "Consider sha1 signatures for a bit longer\n\nThis disables ignoring sha1 signatures until we can improve the core\npaths in the kernel.org keyring.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "442c5beb0871a1a0f0f4786b7314e24a91bd0c96",
      "tree": "281389c3ef967bcb36db4adcd3f9c95d8685aa2f",
      "parents": [
        "f146a1815ad93b2f318e0a5fa857b11814a78b8b",
        "ece92eb6c5c33cf9981adad0b1c1b0f32621e189"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:46:55 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:46:55 2025 -0400"
      },
      "message": "Merge patch series \"Cleanup, a fix and txt representation for trust path finding\"\n\nUwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e says:\n\nWhile testing different things with the kernel pgpkeys data and trying\nto understand the path finding algorithm I wondered if that couldn\u0027t be\ndone in a simpler and then also faster way.\n\nFor maximal transparency I suggest to do\n\n\ttouch empty\n\tkorg-update-pgpkeys empty\n\nUwe Kleine-König (6):\n  Put a representation of the trust path in a txt file\n  get_all_signed_by: Return a plain list instead of a list of 1-tuples\n  get_key_paths: Fix path searching with an easier algorithm\n  export-keyring: Continue updating keys that lost all their trust paths\n  export-keyring: Default to store \"clean\" public keys\n  make-sqlitedb: Don\u0027t consider SHA-1 signatures for trust paths\n\n export-keyring.py   | 156 ++++++++++++++++++++++++++++----------------\n make-sqlitedb.py    |   5 ++\n wotmate/__init__.py | 151 ++++++++++++++++--------------------------\n 3 files changed, 160 insertions(+), 152 deletions(-)\n\nLink: https://patch.msgid.link/20250519101429.1558947-8-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "ece92eb6c5c33cf9981adad0b1c1b0f32621e189",
      "tree": "281389c3ef967bcb36db4adcd3f9c95d8685aa2f",
      "parents": [
        "b088af1f40a56644d260ab9e18085a1b6b5ae31e"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Mon May 19 12:14:36 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:41:33 2025 -0400"
      },
      "message": "make-sqlitedb: Don\u0027t consider SHA-1 signatures for trust paths\n\nGnuPG stopped trusting 3rd party signatures based on the SHA-1 hash\nalgorithm. Follow that change and skip these signatures.\n\nLink: https://patch.msgid.link/20250519101429.1558947-14-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b088af1f40a56644d260ab9e18085a1b6b5ae31e",
      "tree": "9c928bc75910859d614612b20f7acebbd06f1ba6",
      "parents": [
        "19dda191291ff897378f9924b5516318463d0ef8"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Mon May 19 12:14:35 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:41:33 2025 -0400"
      },
      "message": "export-keyring: Default to store \"clean\" public keys\n\nThere is no need to keep duplicated self signatures and signatures by keys\nnot in the keyring. The default behavior of gpg seems to have changed\nregarding the first type of signatures as commit 671a0c921fe0 (\"Periodic\nupdate from keyservers\") in the korg-pgpkeys repo introduced quite some of\nthese.\n\nNew key material is also only added cleaned, so it\u0027s consequent to also\nlet export-keyring clean the keys. A side effect is that signatures made by\ndeleted keys are dropped, too, but I consider that an upside.\n\nAn arguable downside of this change however is that not only duplicated\ndata is dropped, but also 3rd-party signatures over SHA-1 hashes. While\nthis is good in general, this will considerably damage the Web of Trust\nin the kernel keyring, disconnecting 483 keys from Linus POV.\n\nLink: https://patch.msgid.link/20250519101429.1558947-13-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "19dda191291ff897378f9924b5516318463d0ef8",
      "tree": "8981d2dbe51db4ef889cef5d4d6ffaff3fc215a8",
      "parents": [
        "4c2269fea9b40134837cce046e8f2281e863b844"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Mon May 19 12:14:34 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:41:33 2025 -0400"
      },
      "message": "export-keyring: Continue updating keys that lost all their trust paths\n\nWith recent gpg not trusting third-party signatures based on SHA1 quite\nsome public keys lost their trust paths in the kernel pgpkeys repo. It\u0027s\nstill sensible to update these keys, so only skip new keys without a valid\ntrust path.\n\nLink: https://patch.msgid.link/20250519101429.1558947-12-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "4c2269fea9b40134837cce046e8f2281e863b844",
      "tree": "1328dadf0edf96a7b48b5765571d1832f97f71cf",
      "parents": [
        "0b03c5aa1dfdb01eaae83a3388cf539cf601eb2e"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Mon May 19 12:14:33 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:41:33 2025 -0400"
      },
      "message": "get_key_paths: Fix path searching with an easier algorithm\n\nI didn\u0027t debug the old algorithm, but the new one finds more and shorter\npaths that are valid, so the path pruning was too aggressive it seems.\n\nFor example for Andreas Larsson it finds\n\n\tfrom  Linus Torvalds \u003ctorvalds@kernel.org\u003e\n\t   1  Junio C Hamano \u003cgitster@pobox.com\u003e\n\t   2  Geoff Levand \u003cgeoff@infradead.org\u003e\n\t   3  Geert Uytterhoeven (Signing key) \u003cgeert@linux-m68k.org\u003e\n\t   4  Andreas Larsson \u003candreas@gaisler.com\u003e\n\nin the kernel keyring that the old algorithm didn\u0027t find.\n\nThe new algorithm is also more deterministic as it emits the paths in\nsort order (by certificate id). (Actually it\u0027s sorted by rowid of the\npublic keys, but both gnupg and sqlite don\u0027t shuffle during import in\npractise.)\n\nThe new algorithm is also considerably simpler using\nhttps://en.wikipedia.org/wiki/Dijkstra%27s_algorithm\n\nRuntime is comparable to the algorithm before.\n\nOne side effect is also that the graph for the root key is corrected, it\nwas\n\n\tfrom  79BE3E4300411886  Linus Torvalds \u003ctorvalds@kernel.org\u003e\n\t   1  79BE3E4300411886  Linus Torvalds \u003ctorvalds@kernel.org\u003e\n\nbefore.\n\nLink: https://patch.msgid.link/20250519101429.1558947-11-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "0b03c5aa1dfdb01eaae83a3388cf539cf601eb2e",
      "tree": "5a25708c5669d75e5560cbc4759368ac390ae079",
      "parents": [
        "5dc1be5c03f06b0c508f4e41773092f8329d3915"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Mon May 19 12:14:32 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:41:33 2025 -0400"
      },
      "message": "get_all_signed_by: Return a plain list instead of a list of 1-tuples\n\nThis allows to simplify the callers accordingly.\n\nLink: https://patch.msgid.link/20250519101429.1558947-10-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "5dc1be5c03f06b0c508f4e41773092f8329d3915",
      "tree": "b64e5f9218b6775efeb3546afe7bbc12caa6ec7d",
      "parents": [
        "f146a1815ad93b2f318e0a5fa857b11814a78b8b"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Mon May 19 12:14:31 2025 +0200"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue May 20 16:41:33 2025 -0400"
      },
      "message": "Put a representation of the trust path in a txt file\n\nUp to now changes to the trust paths are hardly reviewable when looking\nat the git history because they only have an effect on the generated\n.svg. However these also change when the installed graphviz changes and\nthe diffs are hardly understandable.\n\nFor that reason put a text representation of the graph into the key\nfiles.\n\nA nice side effect of this change is that for a trust path\n\n\tLinus -\u003e A -\u003e B -\u003e C\n\nthe graph for C is regenerated if B\u0027s trust path was shortend to\n\n\tLinus -\u003e B\n\nCo-developed-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\nLink: https://patch.msgid.link/20250519101429.1558947-9-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "f146a1815ad93b2f318e0a5fa857b11814a78b8b",
      "tree": "4355875f787c6c96b0dd2f4e0a7c81059ba87d32",
      "parents": [
        "f4624640df1c3113e7122f8f160b7a86cbba80b9"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Mar 26 13:48:49 2025 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Mar 26 13:48:49 2025 -0400"
      },
      "message": "Add a .b4-config\n\nMake sending patches easier with a .b4-config.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "f4624640df1c3113e7122f8f160b7a86cbba80b9",
      "tree": "1a7132256590b9dd8973986138790267f502a3a2",
      "parents": [
        "93e1fbb1bab72162c75ba3311513daa6f8abd231"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Thu Mar 06 00:29:24 2025 +0100"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Mar 07 17:01:58 2025 -0500"
      },
      "message": "Make the nodes representing a key a link to their respective graph\n\nWith the URL property set, the nodes (in some renderers) become links to\nthe graphs of the key represented by the node.\n\nLink: https://lore.kernel.org/r/20250305232923.2902664-2-u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "93e1fbb1bab72162c75ba3311513daa6f8abd231",
      "tree": "d10e9d499ed7c732bb7f8932ae5090832661feb1",
      "parents": [
        "a9716d31c7f8f2419d2a88c69dfedf9cda3e80c0",
        "11543a5fad7831a8802e99106f6be7cef94b5476"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Feb 28 13:54:17 2025 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Feb 28 13:54:17 2025 -0500"
      },
      "message": "Merge patch series \"Some wotmate updates\"\n\nUwe Kleine-König \u003cu.kleine-koenig@baylibre.com\u003e says:\n\nThis series consists of one minor fix, an addition of comments to\nimprove readability and a tighter check for key updates.\n\nThe fix (\"Fix foreign key references in sig table\") has little practical\nrelevance. But it helps a bit if you look at the generated database with\nsqlitebrowser.\n\nThe stricter check for key updates relates to\nhttps://lore.kernel.org/keys/c7klbj6xvzcfx63gid5iancjg6cv4krgm2wk6wfijwebq7bxtr@songleund4fm/\n. The TL;DR; is: In the past SHA-1 hashes were used to bind subkeys and\nuids to the master key. Cryptologists consider SHA-1 broken since 20\nyears[1]. Keys making use of SHA-1 in that way can be repaired. The\nprocedure is explained in a follow-up to the above mail.\n\nNote that this check also fails if you don\u0027t have Sequoia sq\ninstalled, which is IMHO fine.\n\nLink: https://lore.kernel.org/r/cover.1740729275.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "11543a5fad7831a8802e99106f6be7cef94b5476",
      "tree": "d10e9d499ed7c732bb7f8932ae5090832661feb1",
      "parents": [
        "d644b413b1f6e1606e9f4b8eae92538e738efa39"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Fri Feb 28 09:08:39 2025 +0100"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Feb 28 13:54:05 2025 -0500"
      },
      "message": "export-keyring: Only accept changes that please the Sequoia linter\n\nAs of Sequoia sq 1.2.0 the linter criticizes the usage of SHA-1 that\naffects quite a lot of keys already in the keyring. To ensure the problem\ndoesn\u0027t get worse, only accept updates and new keys that don\u0027t make use\nof that hash algo that is considered unsecure since 20 years.\n\nLink: https://lore.kernel.org/r/56371be75e13d288fd61e4b1d5ddf228fe01461c.1740729275.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "d644b413b1f6e1606e9f4b8eae92538e738efa39",
      "tree": "5135407c7e549dc65535e7cce261620b73c9ab45",
      "parents": [
        "c29a88449fb90a776f30cca4bf57f8ab1707e0db"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Fri Feb 28 09:08:38 2025 +0100"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Feb 28 13:54:05 2025 -0500"
      },
      "message": "maks-sqlitedb: Annotate fields from gpg --with-colons for feeding in the db\n\nThis change helped me to understand what happens when working with the code.\n\nLink: https://lore.kernel.org/r/529f0dd7e10e477cc6b8c74c3283f9baa8db007e.1740729275.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "c29a88449fb90a776f30cca4bf57f8ab1707e0db",
      "tree": "21b2d620305e55692206dc0a35aa5cce5867383b",
      "parents": [
        "a9716d31c7f8f2419d2a88c69dfedf9cda3e80c0"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@baylibre.com",
        "time": "Fri Feb 28 09:08:37 2025 +0100"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Feb 28 13:54:05 2025 -0500"
      },
      "message": "Fix foreign key references in sig table\n\nuidrowid references the rowid of to uid table, not the pub table.\nSimilar for pubrowid.\n\nLink: https://lore.kernel.org/r/7f1715b0c1bcffac8fd8d2ba7dbd3e79439fd140.1740729275.git.u.kleine-koenig@baylibre.com\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a9716d31c7f8f2419d2a88c69dfedf9cda3e80c0",
      "tree": "febc77e331de53b59e969c0e8e0d59b5a40a995a",
      "parents": [
        "4f8f24a9bce3b6aa53be9a9cd845dc8a4cb98f68"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Thu Mar 21 11:52:03 2024 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Thu Mar 21 11:52:03 2024 -0400"
      },
      "message": "Fix sqlite3 deprecation warnings\n\nWith python version 3.12, sqlite3 adapter no longer wants to receive\ndatetime objects, so convert them to isoformat and let sqlite3 deal with\nit internally.\n\nAlso updates a bunch of copyright dates.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "4f8f24a9bce3b6aa53be9a9cd845dc8a4cb98f68",
      "tree": "b989b40f40450685d5dec25d995eda78ee516dcb",
      "parents": [
        "22b07b69d643d8335f1fbbcfa818e43546af6672",
        "e0d67cafaeca4b4fefd2eb1f4ffdef78fd04af35"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed May 12 17:54:59 2021 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 12 17:54:59 2021 -0400"
      },
      "message": "Merge pull request #2 from krzk/readme-update\n\nMention need of make-sqlitedb.py before any usage"
    },
    {
      "commit": "e0d67cafaeca4b4fefd2eb1f4ffdef78fd04af35",
      "tree": "b989b40f40450685d5dec25d995eda78ee516dcb",
      "parents": [
        "22b07b69d643d8335f1fbbcfa818e43546af6672"
      ],
      "author": {
        "name": "Krzysztof Kozlowski",
        "email": "krzysztof.kozlowski@canonical.com",
        "time": "Wed May 12 11:01:23 2021 -0400"
      },
      "committer": {
        "name": "Krzysztof Kozlowski",
        "email": "krzysztof.kozlowski@canonical.com",
        "time": "Wed May 12 11:01:23 2021 -0400"
      },
      "message": "Mention need of make-sqlitedb.py before any usage\n\nSigned-off-by: Krzysztof Kozlowski \u003ckrzysztof.kozlowski@canonical.com\u003e\n"
    },
    {
      "commit": "22b07b69d643d8335f1fbbcfa818e43546af6672",
      "tree": "ad7b5edc6acf800c9a55ed943ddd42728f4b9f7c",
      "parents": [
        "03907c5fa15ce61e2c63e4e750b0f1718f4277a0"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri May 07 14:01:10 2021 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri May 07 14:01:10 2021 -0400"
      },
      "message": "Better recognize existing links\n\nDon\u0027t overwrite existing links if they point to the same location.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "03907c5fa15ce61e2c63e4e750b0f1718f4277a0",
      "tree": "a16ae30d328d2c2d593b84d7d67cc5d2cd685513",
      "parents": [
        "6ee82b011f95e6f53954dc17d2ec580b763d5755"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri May 07 09:25:46 2021 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri May 07 09:25:46 2021 -0400"
      },
      "message": "A set of largely superficial updates\n\n- Remove pathfinder support (site/service is defunct)\n- Remove python 2.7 compatibility\n- Add support to generate b4-style keyring with symlinks to key exports\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "6ee82b011f95e6f53954dc17d2ec580b763d5755",
      "tree": "5c3d85a95f1c85add2509e259fb7f2a560a6f73e",
      "parents": [
        "7401cc5008d5c10238917f7856aadf6653ff614a"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Sat Aug 24 11:41:40 2019 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Sat Aug 24 11:41:40 2019 -0400"
      },
      "message": "Don\u0027t crash when running without --fromkey\n\nIf there is no --fromkey and no ultimately trusted keys on the keyring,\ndon\u0027t crash.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7401cc5008d5c10238917f7856aadf6653ff614a",
      "tree": "15fa12e982d3eada6a9a7cfc3be42400979c6083",
      "parents": [
        "951b1bf5b36411da7a53e383bb5d20afa029ffa9"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Aug 23 19:58:25 2019 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Aug 23 20:02:40 2019 -0400"
      },
      "message": "Initial go at the export-keyring script\n\nThis will be used to maintain the kernel developer key exports git\nrepository. Some further work is needed.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "951b1bf5b36411da7a53e383bb5d20afa029ffa9",
      "tree": "918a8273db921b27483297c47d340399e04cd5b1",
      "parents": [
        "8ec25e7f0e3e3bb158538b66127ec7d790134b83"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 18 08:28:13 2019 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 18 08:28:13 2019 -0500"
      },
      "message": "Small tweak to path selection\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "8ec25e7f0e3e3bb158538b66127ec7d790134b83",
      "tree": "c2e3147f531c4f8879c3a10055fcac4707d59652",
      "parents": [
        "c02cc5c299778a7a24b9fde8ce93353fa7d78a35"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon May 07 14:47:08 2018 -0400"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon May 07 14:47:08 2018 -0400"
      },
      "message": "Add graph-pgp-pathfinder.py\n\nSometimes it\u0027s handy to be able to use the PGP pathfinder service if you\ndon\u0027t want to bother with a local store of key information, but still\nwant to see pretty graphs.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "c02cc5c299778a7a24b9fde8ce93353fa7d78a35",
      "tree": "ed33c39a6fc4701a345bfeea5a0302dd5f955150",
      "parents": [
        "dcdc29291dc7f29864ebff72021e985181fe9725"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 26 20:53:10 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 26 20:53:10 2018 -0500"
      },
      "message": "Regenerate examples with latest code\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "dcdc29291dc7f29864ebff72021e985181fe9725",
      "tree": "7c750fe684a7a7e91c60ce788cbbf89ef0aca59b",
      "parents": [
        "a689d5f6b9452e944dae25b2460d55c675ab580a"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 26 20:38:16 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 26 20:38:16 2018 -0500"
      },
      "message": "Tweak how we treat ignorekeys\n\nWe\u0027re not doing the best job drawing paths because we are too greedy\nadding keys to the ignore list. If there is a more efficient path found\nin the next result, it ends up being ignored. So, add only the topmost\npath member.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a689d5f6b9452e944dae25b2460d55c675ab580a",
      "tree": "6d4f2822ea60503db10d14c81dce52324ec9b661",
      "parents": [
        "9caab54aa87e58955ec448a87a876f4d71d31fbe"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 26 16:33:03 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Mon Feb 26 16:33:03 2018 -0500"
      },
      "message": "Improve keyring import speed\n\nAs discussed in issue #1, switch keyring import to using\n--fast-list-mode when listing sigs. This required changing where we\nimport UIDs, since some versions of gnupg do not list uid data in\n--fast-list-mode, but the end result is the same with dramatically\nimproved speeds (seconds as opposed to hours).\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "9caab54aa87e58955ec448a87a876f4d71d31fbe",
      "tree": "7bd45f44a8275c183419979d8cedbc0dfc4e82e8",
      "parents": [
        "421d5d16c70b78a3c0dfc8bbae465d5c90aad8f3"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Feb 23 16:41:57 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Fri Feb 23 16:41:57 2018 -0500"
      },
      "message": "Don\u0027t crash on uiddata with invalid utf8\n\nShould fix issue #1.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "421d5d16c70b78a3c0dfc8bbae465d5c90aad8f3",
      "tree": "dc8fd597391f37202705b97b2e8028a7a97516bf",
      "parents": [
        "94a08d0815ec04e488108d43c0a00d467f9172c1"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Thu Feb 22 15:37:00 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Thu Feb 22 15:37:00 2018 -0500"
      },
      "message": "Add support for importing wotsap db\n\nYou can now download and import latest.wot, but be warned that the path\nfinding algorithm needs some serious optimization before it can easily\ngo through so many records. It\u0027s possible, but it takes a few minutes\non a fast system.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "94a08d0815ec04e488108d43c0a00d467f9172c1",
      "tree": "b62765428132701727551839a8668dbbf488f0f1",
      "parents": [
        "52ab924dac01e434a4abfe4235470eceabe59ce8"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Feb 21 09:48:08 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Feb 21 09:48:08 2018 -0500"
      },
      "message": "Don\u0027t leak emails unnecessarily\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "52ab924dac01e434a4abfe4235470eceabe59ce8",
      "tree": "77c6192ce8e84d22fbc7b588216ae8f256710944",
      "parents": [
        "dbf88e7c3d0fd4095360c4e4125a0a098c0311f8"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Feb 21 09:45:50 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Feb 21 09:45:50 2018 -0500"
      },
      "message": "Allow passing non-hex key IDs\n\nIt\u0027s annoying to always have to look up 16-character key IDs, so allow\npassing anything matching uiddata fields.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "dbf88e7c3d0fd4095360c4e4125a0a098c0311f8",
      "tree": "af3ce2f0809e7507d0e900f30fb5348861221829",
      "parents": [
        "b64404e5815999c570d370b8b9d8ad641fc597d6"
      ],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Feb 21 09:01:01 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Wed Feb 21 09:01:01 2018 -0500"
      },
      "message": "Add requirements and make PEP8 happy\n\nCosmetic changes only.\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b64404e5815999c570d370b8b9d8ad641fc597d6",
      "tree": "80f4740f9f4d5dd9345704f8a47e86ac3889602d",
      "parents": [],
      "author": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue Feb 20 17:30:37 2018 -0500"
      },
      "committer": {
        "name": "Konstantin Ryabitsev",
        "email": "konstantin@linuxfoundation.org",
        "time": "Tue Feb 20 17:30:37 2018 -0500"
      },
      "message": "Initial commit\n\nSigned-off-by: Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n"
    }
  ]
}
