)]}'
{
  "log": [
    {
      "commit": "339d935575ef7d92f2c9b4df9ce4b724d73c9201",
      "tree": "40bb6c2a08b037d0fedf10580c2536a054607f6b",
      "parents": [
        "df95dc01c2fe1143bd103b14674a6884cc9a4b4d"
      ],
      "author": {
        "name": "Katrina Mitchell",
        "email": "kat.hoffert@gmail.com",
        "time": "Tue Jun 30 13:34:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 13:34:23 2026 -0400"
      },
      "message": "Update README.md in preparation for cutting 0.9.1 (#129)\n\nAt some point should really find a better way, but whatever, we don\u0027t\ncut releases that often."
    },
    {
      "commit": "df95dc01c2fe1143bd103b14674a6884cc9a4b4d",
      "tree": "ea94706fad9fce11d27cd0ccea44296a917f9ffe",
      "parents": [
        "9683466985fb0be1a12ae5f74f30c696f8ef92df"
      ],
      "author": {
        "name": "Honnix",
        "email": "honnix@users.noreply.github.com",
        "time": "Fri Jun 05 19:48:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 11:48:23 2026 -0600"
      },
      "message": "feat: add multi-architecture release artifacts (#127)\n\n## Summary\n\n- Add explicit `GOOS`/`GOARCH` cross-compilation to the release workflow\n- Produce binaries for `linux/amd64`, `linux/arm64`, `darwin/amd64`,\n`darwin/arm64`, and `windows/amd64`\n- Set `CGO_ENABLED\u003d0` and use explicit `-o` flag for consistent output\nnaming\n- Artifact names now include architecture (e.g.\n`keep-sorted_linux_amd64` instead of `keep-sorted_linux`)\n\n## Motivation\n\nThe current workflow builds one binary per OS using the runner\u0027s native\narchitecture. With GitHub Actions runners moving to arm64 for macOS,\nthere\u0027s no `darwin/amd64` binary for Intel Macs, and there has never\nbeen a `linux/arm64` binary.\n\n## Breaking change\n\nArtifact names change from `keep-sorted_\u003cos\u003e` to\n`keep-sorted_\u003cos\u003e_\u003carch\u003e`. Users scripting downloads against the old\nnames will need to update.\n\n## Test plan\n\n- [x] Verify the workflow YAML is valid\n- [x] Trigger a test release on the fork to confirm all 5 matrix jobs\nproduce correctly named binaries\n- [x] Verify cross-compiled binaries with `file` command (ELF ARM\naarch64, Mach-O x86_64, etc.)"
    },
    {
      "commit": "9683466985fb0be1a12ae5f74f30c696f8ef92df",
      "tree": "aa4e667c42e7c32e641bd739a6f423c1a59626bf",
      "parents": [
        "38613f5110f7fb5088d9ad68722e4018a11bc039"
      ],
      "author": {
        "name": "Katrina Mitchell",
        "email": "kat.hoffert@gmail.com",
        "time": "Wed Jun 03 11:11:42 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 09:11:42 2026 -0600"
      },
      "message": "chore: update README.md for v0.9.0 (#128)"
    },
    {
      "commit": "38613f5110f7fb5088d9ad68722e4018a11bc039",
      "tree": "931e5e0446c8e5387011cad470f05d793d0ed3e2",
      "parents": [
        "e2a9a7feb94ae5c76feb846e74e8e7406dee975b"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Apr 09 11:26:17 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:26:17 2026 -0600"
      },
      "message": "fix: Apply regexes to the actual line content (separated by newlines) instead of the joinedLines. (#119)\n\nNow users can craft regexes that would match just the first line of the\ngroup or block (or any arbitrary line they desire) which is basically\nimpossible to do right now.\n\nI made the decision to opt all by_regex regexes into the dotall flag\n`(?s)` that allows `.` to match `\\n`. This is to minimize migration\npain, and to remove the need for users to set that flag themselves\nbecause I imagine users are just about always going to want that flag.\n\n1. Today, by_regex is comparing against joinedLines. Many internal users\nhave already crafted regexes that accidentally span lines. Enabling\ndotall lets most of those regexes work as is after this PR\n2. Either users are sorting individual lines of content, in which they\ndon\u0027t care about the dotall flag, or they\u0027re sorting groups of lines in\nwhich case they will _probably_ prefer dotall so they don\u0027t need to\nexplicitly match newlines with `\\s` or `\\n`.\n3. If a user _doesn\u0027t_ want this behavior, they can explicitly disable\ndotall in their regex with `(?-s)`\n\nThe primary alternative I considered to this would be to make this\n(technically) new behavior opt-in instead of forcing it on all users. I\nplayed around with the idea of re-using the regex\u0027s mutiline flag for\nthat. If the regex set multiline at the top level, it would run against\nnewline joined content. Otherwise it would continue to run against the\nprevious joinedLines content. I decided against this route for two main\nreasons\n\n1. It felt kind of hacky to borrow the multiline flag like that for this\npurpose. It has other implications for how the regex is processed, and\nconceivably a user would want to process newline joined content without\nthose implications\n2. I think the newline joined content will be more intuitive to users\nlong-term. One of my internal CLs raised some questions about how\nby_regex was working because the reviewer thought it would run against\nthe raw content.\n- Arguably, there\u0027s still some weirdness here since we\u0027re trimming\nleading whitespace from lines. I\u0027m hoping that doesn\u0027t confuse users too\nmuch\n\n----\n\nThere are \u003e1000 uses of by_regex internally. From the internal\nregression test, without `(?s)` we got\n\n```\n    devtools/keep_sorted/regression_test.go:99:      2 unordered at head, ordered differently with pending and live keep-sorted\n    devtools/keep_sorted/regression_test.go:99:     27 ordered at head, unordered with pending keep-sorted\n```\n\nwith `(?s)` we cut that in half:\n\n```\n    devtools/keep_sorted/regression_test.go:99:     14 ordered at head, unordered with pending keep-sorted\n```\n\nAll 14 of those changed files are a subset of the original 29.\n\nWhile auditing those 14, there were 4 classes of error:\n- [2] User error: The user wrote a bad regex that was working by\naccident\n- [3] Lines joined w/o a space: The user wrote a regex that implicitly\nrelied on the fact that we sometimes joined lines without a space\nbetween them (thanks [Hyrum](https://www.hyrumslaw.com/)).\n- These errors can be fixed by inserting a `\\s*` at the appropriate spot\n- [3] Lines joined w/ a literal space: The user wrote a regex that\nimplicitly relied on the fact that we sometimes joined lines with a\nliteral space instead of a newline\n- These errors can be fixed by replacing a literal space with the\nwhitespace character class: `\\s`\n- [6] Users were trying to sort a list of things and some of those\nelements were a single line while some of those elements were split\nacross multiple lines. This led me to realize that we should be applying\nthe `joinLines` transform _after_ the regex has matched instead of\nomitting it entirely. That tweak resolved these diffs."
    },
    {
      "commit": "e2a9a7feb94ae5c76feb846e74e8e7406dee975b",
      "tree": "45a8fa5ec404371395cb0c862d5e2278aafd9edf",
      "parents": [
        "b8641a2cf200b51fb8e679e7b94061e9c94c32e2"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Mar 24 08:28:42 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 14:28:42 2026 +0000"
      },
      "message": "fix: Format []ByRegexOption correctly. (#118)\n\nIf there\u0027s a mix of mappings and singular elements, the mappings will\n(maybe) be quoted correctly but the singular elements won\u0027t be, which\ncan result in a a different YAML flow sequence or even invalid YAML if\nthe singular element has the right special characters.\n\ne.g. Before the changes to options.go, the test was generating a\ndifferent flow sequence with 3 elements instead of 2: `by_regex\u003d[foo,\nbar, \\\"\\\\\\\\b(\\\\\\\\d{2})/(\\\\\\\\d{2})/(\\\\\\\\d{4})\\\\\\\\b\\\":\n\\\"${3}-${1}-${2}\\\"]\"`\n\nWe now generate strings that include mapping braces (`{` and `}`, e.g.\n`by_regex\u003d[\u0027foo, bar\u0027, {\u0027\\b(\\d{2})/(\\d{2})/(\\d{4})\\b\u0027:\n\u0027${3}-${1}-${2}\u0027}]`). That\u0027s less than ideal, but it\u0027s still better than\ngenerating invalid YAML. I don\u0027t see any options in the YAML library to\nturn those braces off :/ https://pkg.go.dev/gopkg.in/yaml.v3"
    },
    {
      "commit": "b8641a2cf200b51fb8e679e7b94061e9c94c32e2",
      "tree": "c95780636f4df27d9f5108d8835c964dd4a84d73",
      "parents": [
        "4c4bb29cd135ea8f8c51a3b7dc34d851a86a090d"
      ],
      "author": {
        "name": "Will Beason",
        "email": "willbeason@gmail.com",
        "time": "Thu Mar 19 12:18:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 13:18:14 2026 -0600"
      },
      "message": "feat: Add warning if skip_lines causes empty block (#124)\n\nFixes: https://github.com/google/keep-sorted/issues/123\n\nSpecifically, this triggers if skip_lines causes the block\u0027s start to be\nat or after the block\u0027s end. So fully-empty blocks with no skip_lines\n(or no-op skip_lines, such as skip_lines\u003d0,0) are still fine.\n\nModify tests in skip_lines golden test to show this behavior.\n\nModify how start and end are logged in cmd.go. As-is causes the slightly\nconfusing behavior that \"end\" is always logged before start because it\ncomes first alphabetically. Now these are logged as [start,end]\u003d[x,y].\n\nThe warning for if start\u003e\u003dend shows both the original start/end and\ntheir offsets to make it more obvious how the values are arrived at.\nThis helps finding the problematic lines, as otherwise you just see\nwhere the block start and end is, not where the directives are.\n\n---------\n\nCo-authored-by: Jeffrey Faer \u003cjeffrey.faer@gmail.com\u003e"
    },
    {
      "commit": "4c4bb29cd135ea8f8c51a3b7dc34d851a86a090d",
      "tree": "e994b51ba455d5842d0b9f3dc404eb7fb8df7f67",
      "parents": [
        "b78ccf32ad151dc01241306d429b8a0ebffe4270"
      ],
      "author": {
        "name": "Will Beason",
        "email": "willbeason@gmail.com",
        "time": "Wed Mar 18 11:09:28 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 18 16:09:28 2026 +0000"
      },
      "message": "feat: Make skip_lines option allow skipping at end (#122)\n\nThis adds feature discussed in #80 \n\nskip_lines now interprets negative values as lines to skip at the end of\na sorted region.\n\nskip_lines now accepts up to two values. If two values are specified,\nthe first must be lines skipped at the start and the second lines\nskipped at the end. Internally this is represented as an int slice.\n\nAdd ability for parse options to handle int slices.\n\nModify golden examples to maintain intended behavior.\n\nUpdate documentation with example of skipping lines both at the start\nand end.\n\n---------\n\nCo-authored-by: Jeffrey Faer \u003cjeffrey.faer@gmail.com\u003e"
    },
    {
      "commit": "b78ccf32ad151dc01241306d429b8a0ebffe4270",
      "tree": "ac25bf784ff5cb02715200ed17ffbc9075649ffa",
      "parents": [
        "65be7a4c68e9f5f89e2606c6bd5d20cae3285620"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Mon Mar 09 11:33:23 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 09 13:33:23 2026 -0400"
      },
      "message": "style: Special case IntOrBool 1 and 0 values to yes and no. (#117)"
    },
    {
      "commit": "65be7a4c68e9f5f89e2606c6bd5d20cae3285620",
      "tree": "3197d3e68a1105a4f45fd1bc7eeb0ed8730f91db",
      "parents": [
        "ac58172d1655aa47a6f806e56ff0f269d6dbe637"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Mar 05 13:12:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 15:12:05 2026 -0500"
      },
      "message": "chore: Fix README link (#116)\n\nAlso fix a typo"
    },
    {
      "commit": "ac58172d1655aa47a6f806e56ff0f269d6dbe637",
      "tree": "73f082be7f8586cf5df6907eaf92890db27b0725",
      "parents": [
        "94172960d9beeb8d7610cca272ad73297c09858b"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Mar 05 11:52:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 11:52:35 2026 -0700"
      },
      "message": "chore: Prepare for v0.8.0. (#109)\n\nFixes #106 "
    },
    {
      "commit": "94172960d9beeb8d7610cca272ad73297c09858b",
      "tree": "ff4bfba858d4da6c220c5bc0716e395801456220",
      "parents": [
        "d484b7815acefe3b9e4e65b2859d6b395ffc1fe5"
      ],
      "author": {
        "name": "Rémi Bazin",
        "email": "baz1@users.noreply.github.com",
        "time": "Thu Mar 05 09:58:54 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 17:58:54 2026 +0000"
      },
      "message": "Add `group_start_regex` and `group_end_regex` options. (#114)\n\nThis change allows users to specify regexes for where sorted groups\nshould begin or end, which is currently not something that the existing\n`by_regex` option supports.\n\nTested:\n```\ngo test ./keepsorted ./goldens\n```"
    },
    {
      "commit": "d484b7815acefe3b9e4e65b2859d6b395ffc1fe5",
      "tree": "97fc5f94bc658172c3870a9c4798ee55a3546eaf",
      "parents": [
        "023a7168650246a9114b1b88d2954e73526d04db"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Feb 24 14:45:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 14:45:44 2026 -0700"
      },
      "message": "refactor: Clarify the logic in line_group\u0027s grouping function. (#108)\n\nI think this is somewhat easier to understand, at least at face value.\n\nIt\u0027s a little unfortunate that you still need to dive into the\nimplementation of `shouldAddToGroup` to understand the interplay with\n`numUnmatchedStartDirectives`, but I think this is still a net positive."
    },
    {
      "commit": "023a7168650246a9114b1b88d2954e73526d04db",
      "tree": "ff89c067cd1aa96432af03d1814c65826a566a9d",
      "parents": [
        "16054770964c7b99d5ba49e17bd8db30d141ece1"
      ],
      "author": {
        "name": "Google Admin",
        "email": "github-admin@google.com",
        "time": "Wed Feb 18 16:58:25 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 18 14:58:25 2026 -0700"
      },
      "message": "Refactor Github Action per b/485167538 (#115)\n\nThis is a http://go/LSC run by http://go/ghss to automatically refactor\nyour Github Actions per http://b/485167538.\n\nThis is a PR to help you upgrade to the latest standards in Github\nActions.\n\nPlease merge this PR to accept the changes. NOTE: if you do not accept\nthis PR, it may be force merged by the GHSS team. See http://b/485167538\nfor more details.\n\nCo-authored-by: Ben Knutson \u003cbenknutson@google.com\u003e"
    },
    {
      "commit": "16054770964c7b99d5ba49e17bd8db30d141ece1",
      "tree": "40f1481afed49ee2f8a7b10297aa02b84eec662e",
      "parents": [
        "c5af5447714c5b0f1b92b59341915dc0a7fd6910"
      ],
      "author": {
        "name": "gus-nx",
        "email": "hnx@google.com",
        "time": "Mon Dec 22 17:03:52 2025 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 22 10:03:52 2025 -0700"
      },
      "message": "Add support for a sorting order option.  (#107)\n\nAllows users to speciify the sorting order via a new option : \n`order\u003d(asc|desc)`\nwith asc by default (the current behavior)"
    },
    {
      "commit": "c5af5447714c5b0f1b92b59341915dc0a7fd6910",
      "tree": "7c7297e4a70db89a7b9e42577f558832db27e9cd",
      "parents": [
        "975d9a8885cdffe9703b997f13bce05a39fac861"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Nov 25 12:54:50 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 25 14:54:50 2025 -0500"
      },
      "message": "refactor: Simplify some conditional logic to remove unreachable branches. (#105)\n\n```\nif !lineRange.empty() {\n  finishGroup()\n}\n```\n\nguarantees that `lineRange.empty()` will be true after it (`finishGroup`\nzeroes out `lineRange`). That lets us get rid of one of the branches in\nthe `metadata.opts.Group` conditional. But now the remaining branch\nshares a lot in common with the `else` branch, so we can simplify a bit\nfurther."
    },
    {
      "commit": "975d9a8885cdffe9703b997f13bce05a39fac861",
      "tree": "613e6eefdc7ba1aeca4056aed85f0b5351dc9a45",
      "parents": [
        "8a4bf359ffcf5b037b700aa506d152a2c762ce31"
      ],
      "author": {
        "name": "Brad Forschinger",
        "email": "github@bnjf.id.au",
        "time": "Tue Oct 07 00:56:32 2025 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 06 11:56:32 2025 -0600"
      },
      "message": "doc: add regexp template example (#100)\n\n"
    },
    {
      "commit": "8a4bf359ffcf5b037b700aa506d152a2c762ce31",
      "tree": "88314261d3333321b74bbdeba719d832178fa5be",
      "parents": [
        "291966eaed0f3d97802c751d6e08fd6bf2fc0e5d"
      ],
      "author": {
        "name": "Brad Forschinger",
        "email": "github@bnjf.id.au",
        "time": "Thu Sep 18 00:37:41 2025 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 17 10:37:41 2025 -0400"
      },
      "message": "add template rewrites to by_regex (#96)\n\nSupport map values like `by_regex\u003d[\"(\\w+) (\\w+)\": \"$2 $1\"]` for the purpose of being able to further customize the sorting. This allows for more intuitive ways to do complicated ordering."
    },
    {
      "commit": "291966eaed0f3d97802c751d6e08fd6bf2fc0e5d",
      "tree": "a7b3483e33df6d61dc72f15a6f1b01b1ea83bc8e",
      "parents": [
        "bb2569d6f027827cab2724ae7e335bde841c9aca"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Sep 09 14:05:04 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 09 16:05:04 2025 -0400"
      },
      "message": "chore: Finish bumping go\u0027s version to 1.23. (#99)\n\nThis was overlooked in 71c288e2c0720cc0929d791e41fa3a4f28d61a6f (#39).\n\nThis didn\u0027t cause any problems that I noticed, but I thought it was odd\nthat the github actions weren\u0027t using the version advertised in the\nreadme."
    },
    {
      "commit": "bb2569d6f027827cab2724ae7e335bde841c9aca",
      "tree": "f016c3a1b44656d706156e21bc7d2e99b4aad1df",
      "parents": [
        "80b6daffea8e39dbd988938ad335c77df92a9ac9"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Sep 09 08:17:27 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 09 10:17:27 2025 -0400"
      },
      "message": "refactor: bump pflag to v1.0.10 which includes the fix to stop printing ErrHelp (#98)\n\nThis reverts commit 80b6daffea8e39dbd988938ad335c77df92a9ac9 (#95)."
    },
    {
      "commit": "80b6daffea8e39dbd988938ad335c77df92a9ac9",
      "tree": "029f5ea862ebb63cc5fe4adda527d55ff551c91b",
      "parents": [
        "3743a8644038c38570373215753e49a80488ba07"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Aug 29 11:52:06 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 29 13:52:06 2025 -0400"
      },
      "message": "fix: Stop printing \"pflag: help requested\" when asked for help. (#95)\n\n"
    },
    {
      "commit": "3743a8644038c38570373215753e49a80488ba07",
      "tree": "c303a1bed7bd9367168ddf3ebf2e20d430d17b07",
      "parents": [
        "c71803fd297b5736f3bfab1cfd84424ca52e961a"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Aug 28 15:19:03 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 28 17:19:03 2025 -0400"
      },
      "message": "doc: Remove a bad newline in README. (#94)\n\n"
    },
    {
      "commit": "c71803fd297b5736f3bfab1cfd84424ca52e961a",
      "tree": "cd40ea3ec22c19260a876373cefbe2c7babb579f",
      "parents": [
        "138231bf4c4ece685e5502b5331f91ca512c511e"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Wed Aug 20 15:05:58 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 20 15:05:58 2025 -0600"
      },
      "message": "chore: Prepare for v0.7.1. (#93)\n\n"
    },
    {
      "commit": "138231bf4c4ece685e5502b5331f91ca512c511e",
      "tree": "a361f420eaaddc82fe5087f0f896bbb5c6dcb24f",
      "parents": [
        "876e158065cc7c77a11a4622cb7eb5f41e3da6a9"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Aug 15 11:28:24 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 15 11:28:24 2025 -0600"
      },
      "message": "doc: Fix regular expression link. (#91)\n\n"
    },
    {
      "commit": "876e158065cc7c77a11a4622cb7eb5f41e3da6a9",
      "tree": "e23fdc7142025795cda2c6582c21198e7a6e7f82",
      "parents": [
        "ee5e55fd2841386d1236f3e8153b991a8e366f36"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Aug 15 10:46:28 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 15 12:46:28 2025 -0400"
      },
      "message": "fix: Stop panicking when the start directive skips directly to the end directive. (#92)\n\n"
    },
    {
      "commit": "ee5e55fd2841386d1236f3e8153b991a8e366f36",
      "tree": "a5a08e32313537ad68853b004623a6c6f6f8beb7",
      "parents": [
        "6c80cd9f5248891fe6e3ca7f0b029e81a8bd9d70"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Aug 14 16:43:09 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 18:43:09 2025 -0400"
      },
      "message": "chore: Prepare for v0.7.0. (#90)\n\n"
    },
    {
      "commit": "6c80cd9f5248891fe6e3ca7f0b029e81a8bd9d70",
      "tree": "f8eb10a0a35bf86c16b31dc24bd8e35a0733ba3f",
      "parents": [
        "304f054932606c6f6ada43763998cab7adb22b31"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Aug 14 15:31:35 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 15:31:35 2025 -0600"
      },
      "message": "Revert \"blocks: add double single quote block recognition (#78)\" (#89)\n\nThis reverts commit 1e5a2571bd77c2f64f9933269567188238fed16a.\n\n`\u0027\u0027` is also how many languages express an empty string, which shouldn\u0027t\nbe treated as a quote. #78 causes quite a few problems for many files\ninternally, and I assume it\u0027d also cause problems externally."
    },
    {
      "commit": "304f054932606c6f6ada43763998cab7adb22b31",
      "tree": "44980329d47721d81b8254d3cc37c5a9135027ff",
      "parents": [
        "488401af929ad779fa2c640d4384d4aff2a9181a"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Aug 14 10:59:33 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 10:59:33 2025 -0600"
      },
      "message": "refactor: Make keep-sorted debug output a bit more useful for figuring out why things were sorted a certain way. (#88)\n\nThe debug output now reports all of the tokens that were actually used\nin comparisons. It also now reports all of the line groups in\ntheir sorted order instead of the line groups in their original order,\nbut I think that should be fine.\n\nIf you want to see it in action, run something like\n\n```sh\n$ go run . -vv --id keep-sorted-test - \u003c \u003c(cat goldens/*.in) 1\u003e/dev/null\n```"
    },
    {
      "commit": "488401af929ad779fa2c640d4384d4aff2a9181a",
      "tree": "a3d1504a735e819065689254d1e9941a0a1acf2d",
      "parents": [
        "24d2c002f44b6ab211144561a6fc91b588aee900"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Aug 14 10:50:34 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 10:50:34 2025 -0600"
      },
      "message": "refactor: Move sorting logic from block.go to line_group.go. (#87)\n\nThis also moves the logic a bit more towards an imperative style from\nthe current functional style, which might be a bit easier to reason\nabout moving forward."
    },
    {
      "commit": "24d2c002f44b6ab211144561a6fc91b588aee900",
      "tree": "d5b8e36b8e853702febc1bc983c6a59969916b43",
      "parents": [
        "3c1b7cd4050640679c81ee74f1310a6a7bab2138"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Aug 14 10:43:16 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 10:43:16 2025 -0600"
      },
      "message": "refactor: Rename some methods and types related to ByRegex. (#86)\n\nI think \"regexMatch\" makes more sense than \"regexToken\" because we\naren\u0027t doing anything special to the raw regex match.\n\nI like \"regexDidNotMatch\" better than \"alwaysLast\" since the former\nactually describes how we get that value instead of the business logic\nimplications."
    },
    {
      "commit": "3c1b7cd4050640679c81ee74f1310a6a7bab2138",
      "tree": "243c6454b48dd82415b9329fdd5950bda577fd31",
      "parents": [
        "debebf96335b7a466980b34423d6cef71cf60720"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Aug 14 10:42:53 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 10:42:53 2025 -0600"
      },
      "message": "refactor: Move prefix ordering logic to a separate type to better encapsulate it. (#85)\n\n"
    },
    {
      "commit": "debebf96335b7a466980b34423d6cef71cf60720",
      "tree": "27f17d94c3259fc3c9acb24303aa1667b571bcc8",
      "parents": [
        "3f9cf7d52cc6832a6752433472925981f89d516f"
      ],
      "author": {
        "name": "Mingzhou Joe Sun",
        "email": "mingzhousun@google.com",
        "time": "Thu Aug 14 09:40:50 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 16:40:50 2025 +0000"
      },
      "message": "feat: Change newline_separated support multiple newlines (#84)\n\n1. Change the option newline_separated to a new IntOrBool type that\ntreat no\u003d0 and yes\u003d1,\n2. Change the implementation to check for and add N newlines, when\nnewline_separated\u003dN is specified,\n3. Add new test cases.\n\nTested :\n```\n$ go test ./...\n?       github.com/google/keep-sorted   [no test files]\n?       github.com/google/keep-sorted/cmd       [no test files]\nok      github.com/google/keep-sorted/goldens   (cached)\nok      github.com/google/keep-sorted/keepsorted        (cached)\n```"
    },
    {
      "commit": "3f9cf7d52cc6832a6752433472925981f89d516f",
      "tree": "749a1607bdd3769c70f55b49851d9193c4b0ad1b",
      "parents": [
        "6c448bba600ad9de39ca40f87518d18d72425608"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Apr 08 13:41:31 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 08 15:41:31 2025 -0400"
      },
      "message": "chore: Prepare for v0.6.1. (#82)\n\n"
    },
    {
      "commit": "6c448bba600ad9de39ca40f87518d18d72425608",
      "tree": "8ae77344f25548f374c02ec457a14a2d90cfb340",
      "parents": [
        "1e5a2571bd77c2f64f9933269567188238fed16a"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Apr 08 12:51:56 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 08 14:51:56 2025 -0400"
      },
      "message": "fix: Return a non-zero error code if there are any warnings during fix. (#81)\n\nAlso, report warnings even if the file is already \"fixed\". This seems\nlike another bug that was lurking.\n\nThis change required less work than I was expecting. `go run` helpfully\nprints `error status %d` to stderr for us.\n\nFixes #77"
    },
    {
      "commit": "1e5a2571bd77c2f64f9933269567188238fed16a",
      "tree": "568e70ea79bc363b8c7bca3c710d3307af1ac35d",
      "parents": [
        "421ebc46844a65455604ef270d540d9f7c6fc61f"
      ],
      "author": {
        "name": "Paul Meyer",
        "email": "katexochen0@gmail.com",
        "time": "Tue Apr 01 18:03:11 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 01 16:03:11 2025 +0000"
      },
      "message": "blocks: add double single quote block recognition (#78)\n\nNix multi line strings use double single quotes. Adding this to the list\nof quotes that indicate blocks.\n\nSigned-off-by: Paul Meyer \u003ckatexochen0@gmail.com\u003e"
    },
    {
      "commit": "421ebc46844a65455604ef270d540d9f7c6fc61f",
      "tree": "9c6cf50e55aa6ae4fa2defa53ba3e39c56873291",
      "parents": [
        "532b4b58a8653ff91f18b0420322ff31ab248658"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Mar 18 11:22:40 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 18 15:22:40 2025 +0000"
      },
      "message": "docs: Document some more edge case behaviors of keep-sorted. (#72)\n\nAddresses some of #67."
    },
    {
      "commit": "532b4b58a8653ff91f18b0420322ff31ab248658",
      "tree": "155f4995d72be2238d1e96ff2a765e564f8c05da",
      "parents": [
        "4935a89c73e1a8c1901e05c9d33d0fc46f029419"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Mar 18 11:22:16 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 18 15:22:16 2025 +0000"
      },
      "message": "test: Add tests for trailing comma behavior. (#73)\n\nIncludes test cases for #33 \n\nAddresses some of #67"
    },
    {
      "commit": "4935a89c73e1a8c1901e05c9d33d0fc46f029419",
      "tree": "fdb3e398d920164cf9482211f08faf16d4b8aa32",
      "parents": [
        "f247ac7c1609cd54ac187348e4b57367be05cc37"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Mar 18 10:32:00 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 18 14:32:00 2025 +0000"
      },
      "message": "chore: Add a workflow to automatically build and upload binaries for releases. (#74)\n\nFixes #37"
    },
    {
      "commit": "f247ac7c1609cd54ac187348e4b57367be05cc37",
      "tree": "0d152c1c37a66b0595c85ad74c2507f192be8c13",
      "parents": [
        "799ca64fc7d4c09d96d7a68f8ee70a2473465cbd"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Mar 13 19:39:03 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 13 21:39:03 2025 -0400"
      },
      "message": "chore: Test on macos and windows. (#75)\n\n"
    },
    {
      "commit": "799ca64fc7d4c09d96d7a68f8ee70a2473465cbd",
      "tree": "efe9420848d418c4428b8fd1ee33c4582bb68ded",
      "parents": [
        "8d641518728d604fd965ca442704d0356912e76b"
      ],
      "author": {
        "name": "Vojo Tenev",
        "email": "vojo.tenev@gmail.com",
        "time": "Mon Feb 10 17:49:53 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 10 16:49:53 2025 +0000"
      },
      "message": "doc: Add an example for sorting abbreviated numeric values (#71)\n\nStandard numeric sort does not handle abbreviated numbers (e.g., 1k, 1M,\r\n1B) correctly. This commit adds an example demonstrating how to use the\r\n`by_regex` option in conjunction with numeric sort to enable accurate\r\nsorting of such numbers.\r\n\r\nThe `by_regex` option can also be easily modified to sort other types of\r\ndata with units, such as data storage units (KB, MB, GB, TB)."
    },
    {
      "commit": "8d641518728d604fd965ca442704d0356912e76b",
      "tree": "8b5027726fa1d0c6b3c32644e51a9c1b1d082de0",
      "parents": [
        "8f991299643c503a910144bfd389ec74a679e573"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Wed Jan 22 15:21:22 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 22 17:21:22 2025 -0500"
      },
      "message": "doc: Add a missing `diff` syntax directive to a code block. (#68)\n\n"
    },
    {
      "commit": "8f991299643c503a910144bfd389ec74a679e573",
      "tree": "cb89d717533f2508b8772d58cc8c0bb5b42ca141",
      "parents": [
        "31879fbb64ee9add187549764fe4e4bfa90937ec"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Jan 21 11:11:34 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 21 13:11:34 2025 -0500"
      },
      "message": "doc: Add a couple more example usages of by_regex. (#66)\n\n"
    },
    {
      "commit": "31879fbb64ee9add187549764fe4e4bfa90937ec",
      "tree": "cda7bc1820deb79e29c652c7203128a1d0b5cdc2",
      "parents": [
        "df93c2722b6126556183749880f16a9beb664bb4"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Jan 17 12:05:05 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 17 12:05:05 2025 -0700"
      },
      "message": "docs: Fix a couple README typos. (#65)\n\n- Use Sentence case instead of Title Case to be consistent with the\r\nother section headers\r\n - Use the same comment leader as the before example"
    },
    {
      "commit": "df93c2722b6126556183749880f16a9beb664bb4",
      "tree": "71bf8fcf0cf050449cfdc7aea6a3c5337b8c7b85",
      "parents": [
        "ba6ba5258f42a5aeb8271219bb600dc289e678b4"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Jan 17 10:06:59 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 17 10:06:59 2025 -0700"
      },
      "message": "chore: Prepare for v0.6.0 (#64)\n\n"
    },
    {
      "commit": "ba6ba5258f42a5aeb8271219bb600dc289e678b4",
      "tree": "6db3d3d311238f402f3c9d2f841a60f75a140f6e",
      "parents": [
        "7ae1dfa34aa7f95918923705946bffa723397cb0"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Jan 17 08:08:42 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 17 08:08:42 2025 -0700"
      },
      "message": "feat: Add a new by_regex option. (#62)\n\n"
    },
    {
      "commit": "7ae1dfa34aa7f95918923705946bffa723397cb0",
      "tree": "42dcebc7430eec11b528e76b7407cd6bf96fd3c3",
      "parents": [
        "1655d560910368256ccec8ee04fea10e077376da"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Jan 09 10:49:21 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 09 10:49:21 2025 -0700"
      },
      "message": "refactor: Re-use the lineGroup.joinedLines calculation. (#61)\n\nThis should minimize any performance penalty we\u0027re getting from the fact\r\nthat joinedLines isn\u0027t cached.\r\n\r\nhttps://github.com/google/keep-sorted/blob/65bfea4384f2e3570eb5653d6ebaaec3b7b286b1/keepsorted/line_group.go#L325-L327"
    },
    {
      "commit": "1655d560910368256ccec8ee04fea10e077376da",
      "tree": "f17b4e01fd7b1494467ac8333350d7fdc59c7906",
      "parents": [
        "d1e137d25034aa0279b7b080b2425ba19b2ad8ab"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Jan 07 16:32:15 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 16:32:15 2025 -0700"
      },
      "message": "fix: Make prefix_order case insensitive when case\u003dno. (#60)\n\nSee the history of this PR to see how prefixes.out has changed."
    },
    {
      "commit": "d1e137d25034aa0279b7b080b2425ba19b2ad8ab",
      "tree": "7cdfcd660214b8ed4366a5ec1d79464604825d92",
      "parents": [
        "50eef69817b58d1b75a15e72459a824996645d6b"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Jan 07 16:28:45 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 16:28:45 2025 -0700"
      },
      "message": "fix: Make ignore_prefixes, sticky_prefixes, group_prefixes case insensitive when case\u003dno. (#59)\n\nSee the history of this PR to see how ignore_prefixes.out has changed."
    },
    {
      "commit": "50eef69817b58d1b75a15e72459a824996645d6b",
      "tree": "da68cdf30c554bcbb2cd8e4c0738d376a26b0a10",
      "parents": [
        "65bfea4384f2e3570eb5653d6ebaaec3b7b286b1"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Jan 07 16:26:10 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 16:26:10 2025 -0700"
      },
      "message": "refactor: Move comparator functionality to a new file and introduce a CmpFunc type to make things a little more fluent. (#58)\n\n"
    },
    {
      "commit": "65bfea4384f2e3570eb5653d6ebaaec3b7b286b1",
      "tree": "e8c577a746e84a730008e3d42edbe532dde599bb",
      "parents": [
        "cfd64db63b399f2e6a03f19cd06746f4bded910c"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Mon Dec 16 11:00:19 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 16 11:00:19 2024 -0700"
      },
      "message": "feat: Add a --version flag to keep-sorted. (#57)\n\n"
    },
    {
      "commit": "cfd64db63b399f2e6a03f19cd06746f4bded910c",
      "tree": "c3cd27041d63df5eb01b3a73865a947e005a4528",
      "parents": [
        "a361ef400880ac4612198cbd188eb70029e99644"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Mon Dec 16 10:37:28 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 16 10:37:28 2024 -0700"
      },
      "message": "fix: Do not automatically remove unmatched start/end directives when fixing. (#56)\n\nStill raise them in a lint warning, though.\r\n\r\nAlso, having an unmatched start/end directive likely means that the\r\nblocks we _do_ have are just straight up wrong. Stop trying to sort them\r\nautomatically.\r\n\r\nFixes #50"
    },
    {
      "commit": "a361ef400880ac4612198cbd188eb70029e99644",
      "tree": "f111f974b7a9c038c3211e1fa4cdb4b0dedf7ce1",
      "parents": [
        "6a589968908ea8ba294697b1230e3068b42affda"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Mon Dec 16 09:51:53 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 16 09:51:53 2024 -0700"
      },
      "message": "fix: Ignore leading whitespace after applying ignore_prefixes. (#55)\n\nSee the history of this PR to see how ignore_prefixes.out has changed.\r\n\r\nFix https://github.com/google/keep-sorted/issues/54"
    },
    {
      "commit": "6a589968908ea8ba294697b1230e3068b42affda",
      "tree": "aa710e50fa366ecf1a69eb9b6f5ae0fc08a00502",
      "parents": [
        "ed2a943acd2de8358b12962902081dc5b298a016"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Wed Nov 20 10:34:20 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 20 10:34:20 2024 -0700"
      },
      "message": "fix: Continue to group nested keep-sorted blocks together if both group\u003dyes and block\u003dyes are set. (#53)\n\nSee git history of this PR to see how group.out has changed."
    },
    {
      "commit": "ed2a943acd2de8358b12962902081dc5b298a016",
      "tree": "ea5279371840f32ba047f3c48a39935c4711ab64",
      "parents": [
        "bac77d0c1cffd305d3bc17666616deacfc7fac4c"
      ],
      "author": {
        "name": "Nathan Naze",
        "email": "1475312+nanaze@users.noreply.github.com",
        "time": "Wed Nov 20 09:02:58 2024 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 20 10:02:58 2024 -0700"
      },
      "message": "Add usage string and document stdin/stdout behavior. (#51)\n\n"
    },
    {
      "commit": "bac77d0c1cffd305d3bc17666616deacfc7fac4c",
      "tree": "96f64773bd56454f464aad0ce5e76a66500a4108",
      "parents": [
        "0341d0f22732aef2a757cf03e23883785ab58b5d"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Tue Nov 05 11:16:39 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 05 11:16:39 2024 -0700"
      },
      "message": "doc: Update block\u003dyes docs. (#49)\n\nIt does actually ignore braces in string literals."
    },
    {
      "commit": "0341d0f22732aef2a757cf03e23883785ab58b5d",
      "tree": "c60e97f2865d160543aa93d30d87e11fc53b54b9",
      "parents": [
        "ff41f8ef3112cb5638f0d22ee0f57871aae23f07"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Nov 01 16:51:41 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 01 16:51:41 2024 -0600"
      },
      "message": "fix: Print options correctly when their lists or sets need to be YAML lists. (#48)\n\nRight now, options that need their lists or sets to be YAML lists aren\u0027t\r\nprinting a roundtrippable string."
    },
    {
      "commit": "ff41f8ef3112cb5638f0d22ee0f57871aae23f07",
      "tree": "4e4d6a0f56da1cfdb2e4e51d366c3d4ed8eeeed5",
      "parents": [
        "31802026f4aacd640916f67a9d20d5cc27791ffa"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Oct 25 09:41:51 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 25 09:41:51 2024 -0600"
      },
      "message": "chore: Prepare for v0.5.1. (#46)\n\n"
    },
    {
      "commit": "31802026f4aacd640916f67a9d20d5cc27791ffa",
      "tree": "65ccacf691d17e3989bb14d828fa178dffb1cea1",
      "parents": [
        "3436ef547d0bd24dd3fb4a1c9362186cb752cd30"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Oct 25 09:38:58 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 25 09:38:58 2024 -0600"
      },
      "message": "fix: Sort nested keep-sorted blocks a bit more naturally. (#47)\n\nRight now, we\u0027re including the keep-sorted directive as a line to sort against. It should instead be a comment if possible.\r\n\r\nSee git history of this PR to see how group.out has changed."
    },
    {
      "commit": "3436ef547d0bd24dd3fb4a1c9362186cb752cd30",
      "tree": "45b9d9c33aaeadbecb4721650cdcfaec736efd4e",
      "parents": [
        "fa250d9f5aa8fb88bf1b1f4cfed7ea3b31dbe3bd"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Oct 25 09:32:19 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 25 09:32:19 2024 -0600"
      },
      "message": "fix: Calculate the initial indent correctly in a couple edge cases. (#45)\n\n1. When the first seen line is one of the `group_prefixes`.\r\n2. When the first seen line is another keep-sorted directive.\r\n\r\nIdempotency output before this change:\r\n\r\n```\r\n$ go test ./...\r\n?       github.com/google/keep-sorted   [no test files]\r\n?       github.com/google/keep-sorted/cmd       [no test files]\r\n--- FAIL: TestGoldens (0.66s)\r\n    --- FAIL: TestGoldens/group (0.00s)\r\n        --- FAIL: TestGoldens/group/group (0.66s)\r\n            golden_test.go:105: keep-sorted diff on keep-sorted output (should be idempotent) (-want +got)\r\n                  (\r\n                        \"\"\"\r\n                        ... // 180 identical lines\r\n                          case 5:\r\n                          // keep-sorted-test end\r\n                -           return 10\r\n                          case 2:\r\n                -           return 2;\r\n                          case 4:\r\n                +         case 6:\r\n                +           return 10\r\n                +           return 2;\r\n                            return 4;\r\n                -         case 6:\r\n                            return 6;\r\n                          // keep-sorted-test end\r\n                        \"\"\"\r\n                  )\r\nFAIL\r\nFAIL    github.com/google/keep-sorted/goldens   0.686s\r\nok      github.com/google/keep-sorted/keepsorted        (cached)\r\nFAIL\r\n```\r\n\r\nAlso, check the git history of this PR to see how group.out evolved."
    },
    {
      "commit": "fa250d9f5aa8fb88bf1b1f4cfed7ea3b31dbe3bd",
      "tree": "48445eabd750bea7ad2d82498c3a484446b21491",
      "parents": [
        "74cee98f361c54b86c4b837c3519bdaaee121b2a"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Sep 27 11:38:50 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 27 11:38:50 2024 -0600"
      },
      "message": "chore: Prepare for v0.5.0 (#43)\n\n"
    },
    {
      "commit": "74cee98f361c54b86c4b837c3519bdaaee121b2a",
      "tree": "2f7b4307cf022e36a89cc717e832a2fb46a9c0a5",
      "parents": [
        "ac4af49e9814683401b81c449dd099f12479cf9c"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Sep 27 11:36:48 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 27 11:36:48 2024 -0600"
      },
      "message": "refactor: Remove the undocumented Lint option. (#42)\n\n"
    },
    {
      "commit": "ac4af49e9814683401b81c449dd099f12479cf9c",
      "tree": "9df6f0d205e8b74361aaa7d866b860dd00e325a9",
      "parents": [
        "29d0a49d594cc93e022e28afbfa75a2d0108597e"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Sep 27 09:39:13 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 27 09:39:13 2024 -0600"
      },
      "message": "feat: Allow for spaces and commas in string-valued options. (#29)\n\nYou can now use YAML lists as the input to lists and sets.\r\n\r\nThis is a softly breaking change. Technically, this YAML support does\r\nbreak pre-existing use cases, especially if the option value started\r\nwith a `[`. I\u0027m only calling this softly breaking because YAML list\r\nsupport is guarded by an option `allow_yaml_lists`. This option defaults\r\nto true, but it\u0027s still possible to upgrade your version of keep-sorted\r\nwithout fixing every use in a single shot:\r\n\r\n1. Pass `allow_yaml_lists\u003dno` as one of the `--default-options` to turn\r\nthe new syntax off\r\n2. Start fixing bad call sites and having them additionally specify\r\n`allow_yaml_lists\u003dyes` OR have them specify allow_yaml_lists\u003dno explicitly\r\n3. Once all call sites are fixed, flip your default to `yes` and\r\nremove `allow_yaml_lists\u003dyes` from all the migrated call sites\r\n\r\nFix #28"
    },
    {
      "commit": "29d0a49d594cc93e022e28afbfa75a2d0108597e",
      "tree": "af5a59fee36612e4a287310210a849c6ab58d8ba",
      "parents": [
        "9926a3517c93494ca12ceb7c6d28fd3bae6018da"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Fri Sep 27 09:31:06 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 27 09:31:06 2024 -0600"
      },
      "message": "feat: Surface option parsing warnings via findings. (#41)\n\nThese findings have no fix. I suppose we could recommend that they\r\nremove the invalid text, but I think just surfacing the warning should\r\nbe enough. These show up as findings when linting and stderr warnings\r\nwhen fixing."
    },
    {
      "commit": "9926a3517c93494ca12ceb7c6d28fd3bae6018da",
      "tree": "8f73e80e6b3f399aa37be1ed2f8c0f88a8dbd1be",
      "parents": [
        "71c288e2c0720cc0929d791e41fa3a4f28d61a6f"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Thu Sep 26 13:17:03 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 26 13:17:03 2024 -0600"
      },
      "message": "refactor: Rework how we parse the option string. (#40)\n\n- Instead of checking the string for each option that exists, loop\r\n   through the string to discover which options have been specified\r\n - Split it out into a parser that\u0027s arguably overkill for what we\u0027re\r\ncurrently doing, but consider this as a prefactor for\r\nhttps://github.com/google/keep-sorted/pull/29"
    },
    {
      "commit": "71c288e2c0720cc0929d791e41fa3a4f28d61a6f",
      "tree": "4ed11b91be33bd36760cfcab3f9b9891b607db11",
      "parents": [
        "aad93f3bb01b9825ae32137cf634311270a127b8"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfaer@google.com",
        "time": "Mon Sep 23 16:13:26 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 23 16:13:26 2024 -0600"
      },
      "message": "chore: Bump go to 1.23 (#39)\n\n"
    },
    {
      "commit": "aad93f3bb01b9825ae32137cf634311270a127b8",
      "tree": "863e3a061c681dfcc1b30c0e41aaacd1a44d26de",
      "parents": [
        "0b7d0f882d930003d034e5c6078fa226d7917c85"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Apr 09 13:48:19 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 09 13:48:19 2024 -0600"
      },
      "message": "feat: Allow default options to be customzied with a flag. (#35)\n\n"
    },
    {
      "commit": "0b7d0f882d930003d034e5c6078fa226d7917c85",
      "tree": "d68fe3d9fb6659de8cbec189721a0920e4f82737",
      "parents": [
        "08685efae7a137c454009116bd8f43ee7e5acc93"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Apr 09 13:12:15 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 09 13:12:15 2024 -0600"
      },
      "message": "refactor(options): Define default options as an explicit instance. (#34)\n\nThis simplifies option parsing logic a bit, and sets us up to add a flag\r\nto override the default options\r\n(https://github.com/google/keep-sorted/pull/35).\r\n\r\nI also tweaked most of the tests in keep_sorted_test to not rely on the\r\ndefault options at all and instead be more explicit about the behavior\r\nthey need to pass."
    },
    {
      "commit": "08685efae7a137c454009116bd8f43ee7e5acc93",
      "tree": "f459bd9d1c805ea7cec34cfe7781353cca22149b",
      "parents": [
        "62dd1440b1c8456b372bff09161ea9d847247671"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Thu Apr 04 14:22:08 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 04 14:22:08 2024 -0600"
      },
      "message": "chore: Remove unused protobuf dependency. (#32)\n\nClose #31"
    },
    {
      "commit": "62dd1440b1c8456b372bff09161ea9d847247671",
      "tree": "a78745f44b456820a9c8364a3165eb601c705707",
      "parents": [
        "40cacc890936807c631d3839676b467fd42cd646"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Wed Mar 13 11:56:47 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 13 11:56:47 2024 -0600"
      },
      "message": "chore: Add more detail to the README\u0027s installation instructions. (#30)\n\n"
    },
    {
      "commit": "40cacc890936807c631d3839676b467fd42cd646",
      "tree": "1ff74fa249c7b988a64c7be24c88754fb9a65c49",
      "parents": [
        "15e6c2f2cd560d0d2d850d1e0e11a73d6da18573"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Mar 12 08:31:02 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 12 08:31:02 2024 -0600"
      },
      "message": "chore: Remove unnecessary IFTTT statement. (#27)\n\n"
    },
    {
      "commit": "15e6c2f2cd560d0d2d850d1e0e11a73d6da18573",
      "tree": "a0c96bbcd85455cdd1c5bbf4099531ef373f2dbd",
      "parents": [
        "81b3eac6da030c302c3499e8a2280848b19cc43e"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Mar 05 10:49:48 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 05 10:49:48 2024 -0700"
      },
      "message": "Prepare for v0.4.0. (#26)\n\n"
    },
    {
      "commit": "81b3eac6da030c302c3499e8a2280848b19cc43e",
      "tree": "8a34795c943c0aa3a579b8ae976171ff821667ac",
      "parents": [
        "2b55a363b71d3f4a0f24048819694499b2265ea9"
      ],
      "author": {
        "name": "wachsler-google",
        "email": "wachsler@google.com",
        "time": "Tue Mar 05 12:46:50 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 05 10:46:50 2024 -0700"
      },
      "message": "Add group_prefixes option. (#25)\n\n"
    },
    {
      "commit": "2b55a363b71d3f4a0f24048819694499b2265ea9",
      "tree": "cd7ec20a91affddeb2432e4f249b232ec38da24f",
      "parents": [
        "e6d51e59d2acade828b42267246c595150c3f680"
      ],
      "author": {
        "name": "wachsler-google",
        "email": "wachsler@google.com",
        "time": "Mon Mar 04 10:08:19 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 04 08:08:19 2024 -0700"
      },
      "message": "Add skip_lines option. (#24)\n\nFix #17 "
    },
    {
      "commit": "e6d51e59d2acade828b42267246c595150c3f680",
      "tree": "4e54c246d3c590b46b59d2d282d7216302ee6467",
      "parents": [
        "dcb7a03d7ce167443527e5cc18c07a0ebe308058"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Feb 06 12:49:58 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 06 12:49:58 2024 -0700"
      },
      "message": "Prepare for v0.3.1. (#23)\n\n"
    },
    {
      "commit": "dcb7a03d7ce167443527e5cc18c07a0ebe308058",
      "tree": "f4ab80a45bdc5b0c829b5501f2a9df4af15cdeff",
      "parents": [
        "e1b107b3713bbf8fb78e4d410cf1b5324adbfe34"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Feb 06 12:44:40 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 06 12:44:40 2024 -0700"
      },
      "message": "Have pre-commit bootstrap go so that GitHub actions don\u0027t need to (#21)\n\nIt looks like GitHub actions only use go 1.20 by default, so anyone\r\nusing keep-sorted via the GitHub action pre-commit would need to\r\nseparately install go 1.21. It looks like pre-commit can do that for us\r\nautomatically.\r\n\r\nSee https://github.com/google/keep-sorted/pull/18#discussion_r1450679143\r\nfor more details\r\n\r\nTested in a child PR https://github.com/google/keep-sorted/pull/22"
    },
    {
      "commit": "e1b107b3713bbf8fb78e4d410cf1b5324adbfe34",
      "tree": "6c01a174be94052251ec4c19f889547e82539b61",
      "parents": [
        "438980b79abfbf15bf231b1e3e30f3dc7f22c86f"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Jan 16 10:42:56 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 16 10:42:56 2024 -0700"
      },
      "message": "Prepare for v0.3.0. (#20)\n\n"
    },
    {
      "commit": "438980b79abfbf15bf231b1e3e30f3dc7f22c86f",
      "tree": "d0d8402d3f8950120f7fcc654b0435469a2cb389",
      "parents": [
        "59afe991ef40ec0de56ceea11f05c512e29e2b59"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Jan 16 10:37:26 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 16 10:37:26 2024 -0700"
      },
      "message": "Keep nested keep-sorted blocks together in the same group, regardless of indentation level. (#19)\n\n"
    },
    {
      "commit": "59afe991ef40ec0de56ceea11f05c512e29e2b59",
      "tree": "df8b017851b815bc84a95e10a46cadc0365d978a",
      "parents": [
        "a30924a381bca2c51a52894df343f88330d6a936"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Jan 16 10:29:20 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 16 10:29:20 2024 -0700"
      },
      "message": "Allow for nested keep-sorted blocks. (#14)\n\n"
    },
    {
      "commit": "a30924a381bca2c51a52894df343f88330d6a936",
      "tree": "ee9cd4abe572ae8830f8cee5debd568b11f8160b",
      "parents": [
        "b6f85feedc6054d3601db38ccdc93ac16ced7646"
      ],
      "author": {
        "name": "Paul Meyer",
        "email": "49727155+katexochen@users.noreply.github.com",
        "time": "Fri Jan 12 18:56:35 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 12 10:56:35 2024 -0700"
      },
      "message": "go: update module, various cleanup (#18)\n\nUpgrades from go 1.20 to go 1.21\r\n\r\nSigned-off-by: Paul Meyer \u003c49727155+katexochen@users.noreply.github.com\u003e"
    },
    {
      "commit": "b6f85feedc6054d3601db38ccdc93ac16ced7646",
      "tree": "98ef7b1fea95d6fcdc2a81faf5d3186e5d015209",
      "parents": [
        "a75a96aae6cf935cfea3964fbb063710c585aabd"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Fri Jan 12 09:59:44 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 12 09:59:44 2024 -0700"
      },
      "message": "Let newlines be considered for grouping if the next non-empty line has the proper indent. (#15)\n\nThis is necessary for a nested keep-sorted test case (#14) that uses\r\ngroup\u003dyes to capture the nested keep-sorted blocks as well as\r\nnewline_separated\u003dyes in one of those nested blocks.\r\n\r\nWithout this, the newlines that the nested block introduces break up the\r\nindent-based grouping, resulting in pretty bad behavior."
    },
    {
      "commit": "a75a96aae6cf935cfea3964fbb063710c585aabd",
      "tree": "a8760c74e18caea2e467cb1263aed16f06a85ebf",
      "parents": [
        "9fd0a481e74bfb13af1d3f974f4452c939ed3804"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Tue Dec 19 08:07:18 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 19 08:07:18 2023 -0700"
      },
      "message": "Fix the big.Int parsing so it works with leading zeros. (#16)\n\nThis is what I get for not running the regression test before submitting\r\n#13.\r\n\r\nBefore: `panic: mixedNumberPattern yielded an unparseable int: math/big:\r\ncannot unmarshal \"09\" into a *big.Int`"
    },
    {
      "commit": "9fd0a481e74bfb13af1d3f974f4452c939ed3804",
      "tree": "f87dcbe36aa09acd57d3c19b7005690241b596b3",
      "parents": [
        "88901320f2d215cd56e17030f80aedcd9dd77294"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Mon Dec 18 08:35:39 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 18 08:35:39 2023 -0700"
      },
      "message": "Stop panicking when trying to parse numbers bigger than 2^64. (#13)\n\nBefore: `panic: mixedNumberPattern yielded an unparseable int:\r\nstrconv.ParseInt: parsing\r\n\"99999999999999999999999999999999999999999999999\": value out of range`"
    },
    {
      "commit": "88901320f2d215cd56e17030f80aedcd9dd77294",
      "tree": "bb435678477c97623a4d5e11c4908a87d9245b6a",
      "parents": [
        "8c6ebc880691932d30b17fb1449d286913a0cfe1"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jfalgout@x.team",
        "time": "Thu Dec 07 09:20:16 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 07 09:20:16 2023 -0700"
      },
      "message": "Update README.md (#12)\n\nBump the pre-commit recommended version number to be a bit more recent."
    },
    {
      "commit": "8c6ebc880691932d30b17fb1449d286913a0cfe1",
      "tree": "00ae1401f62dec7262bc8ea3eab2bb0a5e96d597",
      "parents": [
        "b048cb742b96c2a1cbd0721b28c982f0e94494eb"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colecfaust@gmail.com",
        "time": "Thu Oct 19 07:43:25 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 19 08:43:25 2023 -0600"
      },
      "message": "Only recognize well-known comment markers (#11)\n\nRestricting what comment markers keep-sorted accepts leads to less\r\nsurprising behavior, such as // go/keep-sorted treating the comment\r\nmarker as \"// go/\" when using the default id of just \"keep-sorted\"."
    },
    {
      "commit": "b048cb742b96c2a1cbd0721b28c982f0e94494eb",
      "tree": "6f4d1b9b4290b8f9fc9498a46d725a5294c2b060",
      "parents": [
        "c3e068707c18125b7f6077c6a609b7b9b9294cac"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Fri Mar 03 15:22:30 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 03 15:22:30 2023 -0700"
      },
      "message": "Tweak the workflow name for go.yml so that the badge is a little more descriptive. (#7)\n\n"
    },
    {
      "commit": "c3e068707c18125b7f6077c6a609b7b9b9294cac",
      "tree": "dad39a2ce33a2997a97cfdb2b0dc6b9eb5fb0ba9",
      "parents": [
        "e5d729385ca4b757921d5a61c11d0b2fd7bb1c32"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Fri Mar 03 14:13:31 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 03 14:13:31 2023 -0700"
      },
      "message": "Ensure that golden_test fails if it doesn\u0027t find any goldens. (#6)\n\n"
    },
    {
      "commit": "e5d729385ca4b757921d5a61c11d0b2fd7bb1c32",
      "tree": "bf02c4d6f8da98e5281d5ef0604cd985a5142a9b",
      "parents": [
        "240343048d1d3f77e3d25a4d90feb0bb129fd962"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Fri Mar 03 13:22:47 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 03 13:22:47 2023 -0700"
      },
      "message": "Move golden_test into a proper test directory. (#5)\n\n"
    },
    {
      "commit": "240343048d1d3f77e3d25a4d90feb0bb129fd962",
      "tree": "0a4f891a38de050f7cfece77575488e4db30f7fd",
      "parents": [
        "9e25fc13e2fd98dfb16d43176f85f38f603927f7"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Fri Mar 03 13:09:02 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 03 13:09:02 2023 -0700"
      },
      "message": "Use a slightly different augmentedtree implementation. (#4)\n\nThis implementation is 380 commits ahead of the last one, and it already\r\nexists internally in third_party."
    },
    {
      "commit": "9e25fc13e2fd98dfb16d43176f85f38f603927f7",
      "tree": "1ef9fa9b1ba4c42b9dca9ce0f0cd65150c2095d7",
      "parents": [
        "23f0fa44e2b23b256776a4c78c6bdef2bc74eab3"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Fri Mar 03 11:43:03 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 03 11:43:03 2023 -0700"
      },
      "message": "Fix a typo in the README. (#3)\n\n"
    },
    {
      "commit": "23f0fa44e2b23b256776a4c78c6bdef2bc74eab3",
      "tree": "2180a839a43810da44e994a0e32268d120fc3ed5",
      "parents": [
        "58faa5d4bc4df0d54dc719efb0b4605028872a00"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Mon Feb 27 15:04:48 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 27 15:04:48 2023 -0700"
      },
      "message": "Integrate with https://pre-commit.com/ (#2)\n\n"
    },
    {
      "commit": "58faa5d4bc4df0d54dc719efb0b4605028872a00",
      "tree": "8501f1cd4ddaef4010f34372b879dea5609df794",
      "parents": [
        "3cd2f45e9598e1c2bd5fa0854b1574213d5150c8"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Mon Feb 27 13:44:05 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 27 13:44:05 2023 -0700"
      },
      "message": "Add github actions to automatically build and test (#1)\n\n"
    },
    {
      "commit": "3cd2f45e9598e1c2bd5fa0854b1574213d5150c8",
      "tree": "43b5af244a4c9cd282d2c759a1ce28ba474ce631",
      "parents": [
        "cf740f16ef1ee12a299d5f65c7455fbc7994c829"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Fri Feb 24 13:19:02 2023 -0700"
      },
      "committer": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Mon Feb 27 13:29:31 2023 -0700"
      },
      "message": "Port code from internal repository.\n"
    },
    {
      "commit": "cf740f16ef1ee12a299d5f65c7455fbc7994c829",
      "tree": "5780f9ed9d0228f09747bfcb589a2c0355c0dd40",
      "parents": [
        "87127c98fc84347236dcbb10ed13722ac85378aa"
      ],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Fri Feb 24 15:01:02 2023 -0700"
      },
      "committer": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Mon Feb 27 13:29:00 2023 -0700"
      },
      "message": "Add README.md\n"
    },
    {
      "commit": "87127c98fc84347236dcbb10ed13722ac85378aa",
      "tree": "b780708e5405e3ea270be902226ff45c1ebe9c36",
      "parents": [],
      "author": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Thu Feb 23 11:44:40 2023 -0700"
      },
      "committer": {
        "name": "Jeffrey Falgout",
        "email": "jfalgout@x.team",
        "time": "Thu Feb 23 11:45:53 2023 -0700"
      },
      "message": "Initial commit.\n\nCopying some stuff from https://github.com/google/new-project.\n"
    }
  ]
}
