)]}'
{
  "log": [
    {
      "commit": "adbc8813901bba65827259daa8e22ff94ec1f30e",
      "tree": "5a3b2c8e9af4c74e607a0a55e7910c1edb5d266f",
      "parents": [
        "ad460ea8f249db69c943a365fb84f3a59042d54e"
      ],
      "author": {
        "name": "Shudhanshu Singh",
        "email": "sudhanshuwriterblc@gmail.com",
        "time": "Sat Jul 11 06:13:07 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 20:43:07 2026 -0400"
      },
      "message": "fix: resolve macOS test link failure and update lint rules (#2429)\n\n* chore(ci): fix macOS test linking and tune linter exclusions\n\n* fix: resolve macOS linking errors and suppress unused staticcheck nolint warnings in tests\n\n* fix(ci): restrict macOS link workaround to Go \u003c 1.24"
    },
    {
      "commit": "ad460ea8f249db69c943a365fb84f3a59042d54e",
      "tree": "2ba84f43583fc97169fffb49fa8afe59cb6501d2",
      "parents": [
        "746ef07158728502482cea9f880a6f4b21ef29a9"
      ],
      "author": {
        "name": "takanuva15",
        "email": "6986426+takanuva15@users.noreply.github.com",
        "time": "Sat Apr 25 19:07:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 25 19:07:41 2026 -0400"
      },
      "message": "Add cobra unique args validator (#2397)"
    },
    {
      "commit": "746ef07158728502482cea9f880a6f4b21ef29a9",
      "tree": "658379152f783e2a133548f9158d8aa8e7a67799",
      "parents": [
        "f2878bab8c96afd6e36968af96343b35dbb82a82"
      ],
      "author": {
        "name": "Varun Chawla",
        "email": "34209028+veeceey@users.noreply.github.com",
        "time": "Fri Apr 24 13:41:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 13:41:57 2026 -0700"
      },
      "message": "fix: prevent completions from mutating os.Args via append side effect (#2356)\n\nFixes #2257\n\nWhen getCompletions() checks for interspersed flags, it calls\nappend(finalArgs, \"--\") to temporarily add a \"--\" sentinel. However,\nfinalArgs is a sub-slice of the original args (ultimately derived from\nos.Args[1:] or SetArgs), and if the sub-slice has spare capacity in its\nbacking array, append writes \"--\" into the shared array, corrupting\nthe caller\u0027s data.\n\nThis is particularly visible when TraverseChildren is enabled: the\nTraverse method returns sub-slices that share the original backing\narray. A user\u0027s ValidArgsFunction inspecting os.Args would then see\n\"--\" where a real argument should be.\n\nCopy trimmedArgs at the top of getCompletions to prevent any future\nappend from accidentally mutating the caller\u0027s backing array.\n\nCo-authored-by: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "f2878bab8c96afd6e36968af96343b35dbb82a82",
      "tree": "496d305fffba144b0d3ad72ff8c13f3c7696b47d",
      "parents": [
        "85c12c2201a7d2bb8d2a731d41cfd8557a025c90"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Wed Apr 15 12:23:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 12:23:05 2026 -0700"
      },
      "message": "Ignore the linter error (#2390)"
    },
    {
      "commit": "85c12c2201a7d2bb8d2a731d41cfd8557a025c90",
      "tree": "d22e93cb120e606119f513d43a5100537c108d63",
      "parents": [
        "61968e893eee2f27696c2fbc8e34fa5c4afaf7c4"
      ],
      "author": {
        "name": "Artur Aronov",
        "email": "52620016+ArturAronov@users.noreply.github.com",
        "time": "Thu Apr 16 02:47:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 11:47:24 2026 -0700"
      },
      "message": "projects_using_cobra: add Ollama (#2389)"
    },
    {
      "commit": "61968e893eee2f27696c2fbc8e34fa5c4afaf7c4",
      "tree": "109f4586f64b1e91d510e67c9a08529098945d55",
      "parents": [
        "10d4b48a79be3d4e89e6c45cb59f4d32a3d2ae19"
      ],
      "author": {
        "name": "Niklas Vogel",
        "email": "github@n9v9.de",
        "time": "Wed Dec 10 03:18:50 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 09 21:18:50 2025 -0500"
      },
      "message": "fix: quote args in fish shell completion (#2285)\n\n* fix: quote args in fish shell completion\n\nThe arguments used for dynamic completions in fish were missing quotes.\nThis resulted in an error when one of the arguments had a `*` in it\nwhose expansion matched no file. Once the completion got triggered, fish\nerrored with the message `No matches for wildcard [...]`. Don\u0027t quote\nthe first argument as that is the name of the binary.\n\n* Protect against arguments that start with --\n\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e\n\n---------\n\nCo-authored-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "10d4b48a79be3d4e89e6c45cb59f4d32a3d2ae19",
      "tree": "9c48671c34960f7805f995480bb3d3155db06367",
      "parents": [
        "88b30ab89da2d0d0abb153818746c5a2d30eccec"
      ],
      "author": {
        "name": "Jeffrey Faer",
        "email": "jeffrey.faer@gmail.com",
        "time": "Sat Dec 06 07:14:39 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 06 09:14:39 2025 -0500"
      },
      "message": "perf: Loop over the bash variable directly instead of starting subprocesses. (#2333)\n\nToday, the loop is printing the completions one value per line and then\nreading one line to a variable. We can just skip the whole IO rigamarole\nby looping over the completions directly."
    },
    {
      "commit": "88b30ab89da2d0d0abb153818746c5a2d30eccec",
      "tree": "2d35e37480492e44fdd9298ad59c1b655d5d1baf",
      "parents": [
        "346d408fe7d4be00ff9481ea4d43c4abb5e5f77d"
      ],
      "author": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Wed Dec 03 18:51:15 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 03 18:51:15 2025 -0500"
      },
      "message": "chore: Migrate from gopkg.in/yaml.v3 to go.yaml.in/yaml/v3 (#2336)\n\nThe original gopkg.in/yaml.v3 was marked unmaintained (April 2025).\ngo.yaml.in/yaml/v3 is now maintained by the official YAML organization\nand is a drop-in replacement with an identical API.\n\nSigned-off-by: Davanum Srinivas \u003cdavanum@gmail.com\u003e"
    },
    {
      "commit": "346d408fe7d4be00ff9481ea4d43c4abb5e5f77d",
      "tree": "63dc7313e179b494129f9fe4fae7d772b0289d15",
      "parents": [
        "fc81d2003469e2a5c440306d04a6d82a54065979"
      ],
      "author": {
        "name": "John McBride",
        "email": "jpmmcbride@gmail.com",
        "time": "Wed Dec 03 18:46:02 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 03 18:46:02 2025 -0500"
      },
      "message": "fix: actions/setup-go v6 (#2337)\n\nSigned-off-by: John McBride \u003cjpmmcbride@gmail.com\u003e"
    },
    {
      "commit": "fc81d2003469e2a5c440306d04a6d82a54065979",
      "tree": "b8dcdd26277895dda5b591691fba25bc8c9a0f6c",
      "parents": [
        "117698a604b65e80a1ad5b76df67b604bcd992e0"
      ],
      "author": {
        "name": "SamareshSingh",
        "email": "97642706+ssam18@users.noreply.github.com",
        "time": "Mon Nov 17 21:33:27 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 17 22:33:27 2025 -0500"
      },
      "message": "refactor: change minUsagePadding from var to const (#2325)\n\n"
    },
    {
      "commit": "117698a604b65e80a1ad5b76df67b604bcd992e0",
      "tree": "5790d0a0a00f2742006160e605b3264504f501df",
      "parents": [
        "e2dd29ddc39acacf3af13013b06e1fe58b5c3599"
      ],
      "author": {
        "name": "htoyoda18",
        "email": "95602579+htoyoda18@users.noreply.github.com",
        "time": "Mon Nov 17 23:48:10 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 17 06:48:10 2025 -0800"
      },
      "message": "refactor: replace several vars with consts (#2328)\n\n"
    },
    {
      "commit": "e2dd29ddc39acacf3af13013b06e1fe58b5c3599",
      "tree": "9c1c9e4769da8a5f87ec4188a6a7f9220585a1c9",
      "parents": [
        "062989255670f5e100abf70fa5e291a394915f89"
      ],
      "author": {
        "name": "Ron Vergis",
        "email": "ron.vergis@gmail.com",
        "time": "Mon Nov 17 08:47:19 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 17 06:47:19 2025 -0800"
      },
      "message": "Add documentation for repeated flags functionality (#2316)\n\nResolves #2298\n\n- Added comprehensive \"Repeated Flags\" section to user guide\n- Documented CountVarP for SSH-style verbose flags (-v, -vv, -vvv)\n- Documented StringArrayVarP for multiple value collection\n- Provided complete code examples and usage patterns\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Vergis_Ron \u003cVergis_Ron@bah.com\u003e\nCo-authored-by: Claude \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "062989255670f5e100abf70fa5e291a394915f89",
      "tree": "71bc2b6fcddb436cb6377c8e4a588d3415d2f520",
      "parents": [
        "7da941c3547e93b8c9f70bbd3befca79c6335388"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Fri Nov 14 09:01:44 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 14 06:01:44 2025 -0800"
      },
      "message": "Fix linter (#2327)\n\nWe need to keep the old \"+build\" syntax because Cobra still allows to\nuse a Go version as old as 1.15.\n\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "7da941c3547e93b8c9f70bbd3befca79c6335388",
      "tree": "1e0d9694b7f6f6df0cd8e0d4954ee33a2b14ddbe",
      "parents": [
        "51d675196729be769ce235b710ab7058b3aad03a"
      ],
      "author": {
        "name": "John McBride",
        "email": "jpmmcbride@gmail.com",
        "time": "Mon Sep 01 12:19:51 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 01 12:19:51 2025 -0400"
      },
      "message": "chore: Bump pflag to v1.0.9 (#2305)\n\nSigned-off-by: John McBride \u003cjpmmcbride@gmail.com\u003e"
    },
    {
      "commit": "51d675196729be769ce235b710ab7058b3aad03a",
      "tree": "c767df2d6caa8fd00d2eaf063beba3e1508bc1d2",
      "parents": [
        "3f3b81882534a51628f3286e93c6842d9b2e29ea"
      ],
      "author": {
        "name": "Tomas Aschan",
        "email": "1550920+tomasaschan@users.noreply.github.com",
        "time": "Mon Sep 01 01:15:08 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 31 16:15:08 2025 -0700"
      },
      "message": "Bump pflag to 1.0.8 (#2303)\n\nIn pflag, we recently made a breaking change in naming to be more inclusive. This change, while doing nothing to address the same uninclusive naming in cobra itself, adjusts to those changes to ensure automatic bumps (if you do them) can continue uninterrupted."
    },
    {
      "commit": "3f3b81882534a51628f3286e93c6842d9b2e29ea",
      "tree": "b6e8e803bd71e5941cdfbb809a86f20311fd0c9a",
      "parents": [
        "dcaf42e2633496bf97d5476d7419071e5c48f40a"
      ],
      "author": {
        "name": "Steve Francia",
        "email": "steve.francia@gmail.com",
        "time": "Mon Aug 11 09:58:23 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 11 09:58:23 2025 -0400"
      },
      "message": "Update README.md with new logo"
    },
    {
      "commit": "dcaf42e2633496bf97d5476d7419071e5c48f40a",
      "tree": "4f13ae91e562ebcaf408607fdacc882ebbd1b3d1",
      "parents": [
        "6dec1ae26659a130bdb4c985768d1853b0e1bc06"
      ],
      "author": {
        "name": "Anish Athalye",
        "email": "me@anishathalye.com",
        "time": "Sun Aug 03 22:14:01 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 03 22:14:01 2025 -0700"
      },
      "message": "Add Periscope to the list of projects using Cobra (#2299)\n\n"
    },
    {
      "commit": "6dec1ae26659a130bdb4c985768d1853b0e1bc06",
      "tree": "8ee50915945d2bab87828ccc9203bbb06a88e07e",
      "parents": [
        "c8289c10302063b9a2e26357e7e0f0bb599f29ce"
      ],
      "author": {
        "name": "Harald Albers",
        "email": "albers@users.noreply.github.com",
        "time": "Sat May 31 12:36:04 2025 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 31 08:36:04 2025 -0400"
      },
      "message": "The default ShellCompDirective can be customized for a command and its subcommands (#2238)\n\n"
    },
    {
      "commit": "c8289c10302063b9a2e26357e7e0f0bb599f29ce",
      "tree": "2b02cf308a7b88e172b3e50f609fc32a3aa9bbce",
      "parents": [
        "4af7b64d31989e78e86d65304f693a6d9c77c932"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Wed May 28 22:35:15 2025 +0300"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat May 31 08:20:04 2025 -0400"
      },
      "message": "chore(golangci-lint): add some exclusion presets\n\nTo avoid cropping up new findings for commonly ignored issues for now.\n"
    },
    {
      "commit": "4af7b64d31989e78e86d65304f693a6d9c77c932",
      "tree": "b1ec948a638f5bb2532b7e6cfd4bd9704da84fb9",
      "parents": [
        "75790e48fb73c8ba027e0163157a86ce8604ca3e"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Thu Mar 27 00:45:29 2025 +0200"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat May 31 08:20:04 2025 -0400"
      },
      "message": "refactor: apply golangci-lint autofixes, work around false positives\n"
    },
    {
      "commit": "75790e48fb73c8ba027e0163157a86ce8604ca3e",
      "tree": "dc013c9a90369e51cb2cf389e059553ecad6545b",
      "parents": [
        "db3ddb5cf4968b320ea21f6ee5c2d2202a2e7b22"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Thu Mar 27 00:44:15 2025 +0200"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat May 31 08:20:04 2025 -0400"
      },
      "message": "chore(golangci-lint): upgrade to v2\n"
    },
    {
      "commit": "db3ddb5cf4968b320ea21f6ee5c2d2202a2e7b22",
      "tree": "3ffad79ab30199c276441a41e6f602ab6b2dc9da",
      "parents": [
        "ceb39aba25c86233e4888210c4b57cdb0a78d1e1",
        "67171d6909986ee86fb946f808b87aba88ee417a"
      ],
      "author": {
        "name": "Steve Francia",
        "email": "steve.francia@gmail.com",
        "time": "Mon May 05 22:12:42 2025 -0400"
      },
      "committer": {
        "name": "Steve Francia",
        "email": "steve.francia@gmail.com",
        "time": "Mon May 05 22:17:20 2025 -0400"
      },
      "message": "Adding sponsorship to README.md\n"
    },
    {
      "commit": "67171d6909986ee86fb946f808b87aba88ee417a",
      "tree": "3ffad79ab30199c276441a41e6f602ab6b2dc9da",
      "parents": [
        "0ed70dcfd4d22bc39ba138fefb9f37ed3d2e87ec"
      ],
      "author": {
        "name": "Steve Francia",
        "email": "steve.francia@gmail.com",
        "time": "Mon May 05 22:11:24 2025 -0400"
      },
      "committer": {
        "name": "Steve Francia",
        "email": "steve.francia@gmail.com",
        "time": "Mon May 05 22:11:24 2025 -0400"
      },
      "message": "putting sponsorship below header\n"
    },
    {
      "commit": "0ed70dcfd4d22bc39ba138fefb9f37ed3d2e87ec",
      "tree": "ea0a275087966c9360edf42999a4b7347c42fb12",
      "parents": [
        "0846d166eeddf8290755d95646725c139922635d"
      ],
      "author": {
        "name": "Eric Chen",
        "email": "54382303+ericdachen@users.noreply.github.com",
        "time": "Tue Apr 15 15:44:27 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 15 15:44:27 2025 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "0846d166eeddf8290755d95646725c139922635d",
      "tree": "99dd5aea03183a934ad65ec4a08e09a76e55ac5e",
      "parents": [
        "73f7846ba97514885fe3c3e89bf007b4683ba03e"
      ],
      "author": {
        "name": "Eric Chen",
        "email": "54382303+ericdachen@users.noreply.github.com",
        "time": "Fri Apr 11 19:32:40 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 11 19:32:40 2025 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "73f7846ba97514885fe3c3e89bf007b4683ba03e",
      "tree": "9717f9a3e6fc7010c2acb711b6f0c2911a7f7bdf",
      "parents": [
        "ba5108a4701cb242e60243e38f250852b40542c0"
      ],
      "author": {
        "name": "Eric Chen",
        "email": "54382303+ericdachen@users.noreply.github.com",
        "time": "Fri Apr 11 19:31:17 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 11 19:31:17 2025 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "ba5108a4701cb242e60243e38f250852b40542c0",
      "tree": "b04e4a2f5c62fb53bc3545aa19dcce78d7074e72",
      "parents": [
        "ceb39aba25c86233e4888210c4b57cdb0a78d1e1"
      ],
      "author": {
        "name": "Eric Chen",
        "email": "54382303+ericdachen@users.noreply.github.com",
        "time": "Fri Apr 11 19:30:14 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 11 19:30:14 2025 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "ceb39aba25c86233e4888210c4b57cdb0a78d1e1",
      "tree": "cb75acb3ed9d792ce1738321d25d9101aaaf4b91",
      "parents": [
        "c25b598345317bed94d045873fc1d1a94c21495f"
      ],
      "author": {
        "name": "John McBride",
        "email": "jpmmcbride@gmail.com",
        "time": "Tue Mar 11 06:56:36 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 11 06:56:36 2025 -0600"
      },
      "message": "chore: Rm GitHub Action PR size labeler (#2256)\n\nSigned-off-by: John McBirde \u003cjpmmcbride@gmail.com\u003e"
    },
    {
      "commit": "c25b598345317bed94d045873fc1d1a94c21495f",
      "tree": "eff9f494fce50e57ec1ad5cf699f9fdc73c3b936",
      "parents": [
        "4f9ef8cdbbc88c5302be95e0e67fd78ebbfa9dd2"
      ],
      "author": {
        "name": "John McBride",
        "email": "jpmmcbride@gmail.com",
        "time": "Mon Mar 10 16:46:30 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 10 16:46:30 2025 -0600"
      },
      "message": "feat: Add security policy (#2253)\n\nSigned-off-by: John McBirde \u003cjpmmcbride@gmail.com\u003e"
    },
    {
      "commit": "4f9ef8cdbbc88c5302be95e0e67fd78ebbfa9dd2",
      "tree": "8239d673979fde1c11e873cedc5b5ae76f05efde",
      "parents": [
        "1995054b003053cc1e404bccfbf6d168e8731509"
      ],
      "author": {
        "name": "styee",
        "email": "19558839+styee@users.noreply.github.com",
        "time": "Fri Mar 07 06:53:22 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 07 09:53:22 2025 -0500"
      },
      "message": "Update command.go (#2248)\n\nFix spelling in the help output.\r\n\r\ntopcis -\u003e topics"
    },
    {
      "commit": "1995054b003053cc1e404bccfbf6d168e8731509",
      "tree": "09bdf4a83a0ed825fd1cdbbf5b926e7a9b6930f0",
      "parents": [
        "f98cf4216d3cb5235e6e0cd00ee00959deb1dc65"
      ],
      "author": {
        "name": "Fraser Waters",
        "email": "frassle@gmail.com",
        "time": "Fri Feb 21 12:46:14 2025 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 21 07:46:14 2025 -0500"
      },
      "message": "Flow context to command in SetHelpFunc (#2241)\n\nFixes https://github.com/spf13/cobra/issues/2240\n"
    },
    {
      "commit": "f98cf4216d3cb5235e6e0cd00ee00959deb1dc65",
      "tree": "97d2adcb4f063dbe87ab6b2f3661959d1101f1f3",
      "parents": [
        "0d417d8f77c3bfe2de281cce36ca9bea807aa00c"
      ],
      "author": {
        "name": "Yedaya Katsman",
        "email": "yedaya.ka@gmail.com",
        "time": "Mon Feb 17 21:16:17 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 17 14:16:17 2025 -0500"
      },
      "message": "Remove traling curlybrace (#2237)\n\n"
    },
    {
      "commit": "0d417d8f77c3bfe2de281cce36ca9bea807aa00c",
      "tree": "16a88088b2995f64183e37df9ef774f1135398ff",
      "parents": [
        "40b5bc1437a564fc795d388b23835e84f54cd1d1"
      ],
      "author": {
        "name": "Chongyi Zheng",
        "email": "git@zcy.dev",
        "time": "Mon Feb 17 13:59:07 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 17 13:59:07 2025 -0500"
      },
      "message": "Test with Go 1.24 (#2236)\n\n"
    },
    {
      "commit": "40b5bc1437a564fc795d388b23835e84f54cd1d1",
      "tree": "cefed611a4b3df9b3ca2aff2ec1f689346835665",
      "parents": [
        "a97f9fd47b290016526c8af2dac0531fea5cd773"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sun Feb 16 18:42:04 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 16 18:42:04 2025 -0500"
      },
      "message": "Revert \"Make detection for test-binary more universal (#2173)\" (#2235)\n\nThis reverts commit d1e9d85fcf592461f3bc2f4b6d5e140c4c0aabf8.\r\n\r\nSome programs set os.Args in their unit tests and this change would\r\nbreak those tests.\r\n\r\nRef: https://github.com/spf13/cobra/pull/2173#issuecomment-2661544195"
    },
    {
      "commit": "a97f9fd47b290016526c8af2dac0531fea5cd773",
      "tree": "a06c7cfe1648fde41f42e1c08b84959c04501a45",
      "parents": [
        "5f9c40898e795a9fb0fd5ca83b6e05c3720523d1"
      ],
      "author": {
        "name": "ccoVeille",
        "email": "3875889+ccoVeille@users.noreply.github.com",
        "time": "Sun Feb 16 19:08:14 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 16 13:08:14 2025 -0500"
      },
      "message": "fix CompletionFunc implementation (#2234)\n\nThe new type CompletionFunc could lead to a regression.\r\nThis commit make the new `CompletionFunc` type a type alias instead,\r\nin case projects using Cobra have created their own similar type.\r\n\r\nThis commit also adds a test to ensure that the completion function\r\nremains backwards-compatible.\r\n\r\nSigned-off-by: ccoVeille \u003c3875889+ccoVeille@users.noreply.github.com\u003e"
    },
    {
      "commit": "5f9c40898e795a9fb0fd5ca83b6e05c3720523d1",
      "tree": "71c0a1ddd29a586cf1fce8d6a9393f4b9a98845b",
      "parents": [
        "24ada7fe71e3a3a8741dd52e0a7fc3b97450535a"
      ],
      "author": {
        "name": "John McBride",
        "email": "jpmmcbride@gmail.com",
        "time": "Sat Feb 15 11:17:48 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 15 11:17:48 2025 -0700"
      },
      "message": "chore: Upgrade dependencies for v1.9.0 (#2233)\n\nSigned-off-by: John McBirde \u003cjpmmcbride@gmail.com\u003e"
    },
    {
      "commit": "24ada7fe71e3a3a8741dd52e0a7fc3b97450535a",
      "tree": "17e8400212c4d0c89ce6e91bb973cb65d722cd1d",
      "parents": [
        "680936a2200be363c61feda8cd29287f0726a48c"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat Feb 15 13:07:02 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 15 11:07:02 2025 -0700"
      },
      "message": "Remove the default \"completion\" cmd if it is alone (#1559)\n\nWhen a program has no sub-commands, its root command can accept\r\narguments.  If we add the default \"completion\" command to such programs\r\nthey will now have a sub-command and will no longer accept arguments.\r\n\r\nWhat we do instead for this special case, is only add the \"completion\"\r\ncommand if it is being called, or if it is being completed itself.\r\n\r\nWe want to have the \"completion\" command for such programs because it\r\nwill allow the completion of flags and of arguments (if provided\r\nby the program).\r\n\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "680936a2200be363c61feda8cd29287f0726a48c",
      "tree": "3bdabbd4f3010cd331fd8d236d35dd7295be18b4",
      "parents": [
        "8cb30f9ca53a004a6fe88c5cfcc79ac7b24fc638"
      ],
      "author": {
        "name": "Steve Francia",
        "email": "steve.francia@gmail.com",
        "time": "Tue Feb 11 20:00:54 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 11 20:00:54 2025 -0500"
      },
      "message": "New logo"
    },
    {
      "commit": "8cb30f9ca53a004a6fe88c5cfcc79ac7b24fc638",
      "tree": "500fd26a0405e8a14ff5afe8dbf38b02bb10584d",
      "parents": [
        "17b6dca2ffaf6113cbd1cf433ec988fa7d63c6f3"
      ],
      "author": {
        "name": "ccoVeille",
        "email": "3875889+ccoVeille@users.noreply.github.com",
        "time": "Sun Feb 09 17:06:07 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 09 11:06:07 2025 -0500"
      },
      "message": "feat: add CompletionWithDesc helper (#2231)\n\nThe code has also been refactored to use a type alias for completion and a completion helper\r\n\r\nUsing a type alias is a non-breaking change and it makes the code more readable and easier to understand.\r\n\r\nSigned-off-by: ccoVeille \u003c3875889+ccoVeille@users.noreply.github.com\u003e\r\nCo-authored-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "17b6dca2ffaf6113cbd1cf433ec988fa7d63c6f3",
      "tree": "61e6e1a3eadb60cc1b9770d65e2780cc3dcb0a6a",
      "parents": [
        "ab5cadcc1bbe224b329726fc5f8b99d6f93e9805"
      ],
      "author": {
        "name": "Raúl Barroso",
        "email": "ra.barroso@gmail.com",
        "time": "Thu Feb 06 21:35:25 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 06 15:35:25 2025 -0500"
      },
      "message": "doc: add Conduit (#2230)\n\nWe recently added a CLI to a our Conduit project, and we use Cobra to power it.\r\n\r\nHere\u0027s a blog post mentioning it https://meroxa.com/blog/introducing-the-new-conduit-cli:-a-powerful-tool-for-managing-your-pipelines/\r\n"
    },
    {
      "commit": "ab5cadcc1bbe224b329726fc5f8b99d6f93e9805",
      "tree": "78d1f00ae80e5cb73072d365772a1b1d7cbad38d",
      "parents": [
        "4ba5566f5704a9c0d205e1ef3efc4896156d33fa"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Thu Feb 06 10:25:44 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 06 08:25:44 2025 -0700"
      },
      "message": "Allow to reset the templates to the default (#2229)\n\nFollow-up to #1956.\r\n\r\nThis commit allows a program to reset any of the tree templates to their\r\ndefault behaviour, as it was possible to do before the change of #1956.\r\n\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "4ba5566f5704a9c0d205e1ef3efc4896156d33fa",
      "tree": "acccf0d916cf2223c7a1e8591164320635a16d6b",
      "parents": [
        "41b26ec8bb59dfba580f722201bf371c4f5703dd"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Sat Feb 01 23:35:34 2025 -0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 01 19:35:34 2025 -0500"
      },
      "message": "fix(bash): nounset unbound file filter variable on empty extension (#2228)\n\nHappens at least if a flag is marked as filename, with \"\" given as\r\nextensions."
    },
    {
      "commit": "41b26ec8bb59dfba580f722201bf371c4f5703dd",
      "tree": "91d9208a110e13d1fada6a3aa4044db4778df05a",
      "parents": [
        "611e16c322e3b0413a9ba4e489fcd98ef904e406"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Wed Jan 29 19:28:46 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 29 19:28:46 2025 -0500"
      },
      "message": "Print ActiveHelp for bash along other completions (#2076)\n\nIn the bash shell we used to print ActiveHelp messages on every\r\ntab-press. In the example below, notice the \"Command help\" line which is\r\nActiveHelp:\r\n\r\nbash-5.1$ tanzu context u[tab]\r\nCommand help: Configure and manage contexts for the Tanzu CLI\r\n\r\nbash-5.1$ tanzu context u[tab]\r\nCommand help: Configure and manage contexts for the Tanzu CLI\r\n\r\nbash-5.1$ tanzu context u\r\nunset  (Unset the active context so that it is not used by default.)\r\nuse    (Set the context to be used by default)\r\nbash-5.1$ tanzu context u\r\n\r\nAbove, on the first [tab] press, only the ActiveHelp is printed.\r\nOn the second [tab] press, the ActiveHelp is printed again, followed\r\nby a re-print of the command-line, followed by the completions choices.\r\n\r\nThe separation between ActiveHelp and completion choices makes the\r\nActiveHelp harder to see. Furthermore, I find the double printing of the\r\nActiveHelp string to look bad.\r\n\r\nNote that for zsh, the UX is different and that ActiveHelp messages are\r\nprinted at the same time as the completion choices.\r\n\r\nThis commit aligns the UX for ActiveHelp in bash with the one for zsh:\r\nif there are other completions to be shown, the ActiveHelp messages are\r\nprinted at the same time.\r\n\r\nNew behaviour:\r\n1- ActiveHelp is no longer printed on the first [tab] press. This is\r\n   better aligned with bash\u0027s standard approach.\r\n2- ActiveHelp is printed on the second [tab] press, above the completion\r\n   choices, with a `--` delimiter.\r\n3- If there are no completion choices, the `--` delimiter is omitted.\r\n\r\nThis behaviour is the same as what is done for zsh (except that for zsh\r\nthe first [tab] press immediately shows completion choices).\r\n\r\nBelow is the above example, but using this commit.\r\nNotice the more concise and easier to read completion output:\r\n\r\nbash-5.1$ tanzu context u[tab][tab]\r\nCommand help: Configure and manage contexts for the Tanzu CLI\r\n--\r\nunset  (Unset the active context so that it is not used by default.)\r\nuse    (Set the context to be used by default)\r\nbash-5.1$ tanzu context u\r\n\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "611e16c322e3b0413a9ba4e489fcd98ef904e406",
      "tree": "9fd0caa7387dee0a571aa715f28b2c0fb42e7d5f",
      "parents": [
        "09d5664f34e3f7571560e48ccb74c8904b671e87"
      ],
      "author": {
        "name": "Alessandro Arzilli",
        "email": "alessandro.arzilli@gmail.com",
        "time": "Mon Jan 27 15:43:43 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 27 09:43:43 2025 -0500"
      },
      "message": "Allow linker to perform deadcode elimination for program using Cobra (#1956)\n\n* Restructure code to let linker perform deadcode elimination step\r\n\r\nCobra, in its default configuration, will execute a template to generate\r\nhelp, usage and version outputs. Text/template execution calls MethodByName\r\nand MethodByName disables dead code elimination in the Go linker, therefore\r\nall programs that make use of cobra will be linked with dead code\r\nelimination disabled, even if they end up replacing the default usage, help\r\nand version formatters with a custom function and no actual text/template\r\nevaluations are ever made at runtime.\r\n\r\nDead code elimination in the linker helps reduce disk space and memory\r\nutilization of programs. For example, for the simple example program used by\r\nTestDeadcodeElimination 40% of the final executable size is dead code. For a\r\nmore realistic example, 12% of the size of Delve\u0027s executable is deadcode.\r\n\r\nThis PR changes Cobra so that, in its default configuration, it does not\r\nautomatically inhibit deadcode elimination by:\r\n\r\n1. changing Cobra\u0027s default behavior to emit output for usage and help using\r\n   simple Go functions instead of template execution\r\n2. quarantining all calls to template execution into SetUsageTemplate,\r\n   SetHelpTemplate and SetVersionTemplate so that the linker can statically\r\n   determine if they are reachable\r\n\r\nCo-authored-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "09d5664f34e3f7571560e48ccb74c8904b671e87",
      "tree": "7fa66fab1b31da88ef188f49cf831c96e4f34412",
      "parents": [
        "6c3c1163c6df19860515103199e880122ba49e80"
      ],
      "author": {
        "name": "Toni Kangas",
        "email": "kangasta@users.noreply.github.com",
        "time": "Thu Jan 23 04:28:30 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 22 21:28:30 2025 -0500"
      },
      "message": "Add similar whitespace escape logic to bash v2 completions than in other completions (#1743)\n\n\r\nSigned-off-by: Toni Kangas \u003ctoni.kangas@upcloud.com\u003e\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e\r\nCo-authored-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e\r\nCo-authored-by: Jeffrey Faer \u003cjeffrey.faer@gmail.com\u003e"
    },
    {
      "commit": "6c3c1163c6df19860515103199e880122ba49e80",
      "tree": "a5003a5edaa616a35f3c7bf09de90b204111aa76",
      "parents": [
        "01ffff4eca5a08384ef2b85f39ec0dac192a5f7b"
      ],
      "author": {
        "name": "ccoVeille",
        "email": "3875889+ccoVeille@users.noreply.github.com",
        "time": "Wed Jan 22 02:34:05 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 21 20:34:05 2025 -0500"
      },
      "message": "feat: add CompletionFunc type to help with completions (#2220)\n\nAlso document that NoFilesCompletion and FixedCompletion can be used with RegisterFlagCompletionFunc.\r\n"
    },
    {
      "commit": "01ffff4eca5a08384ef2b85f39ec0dac192a5f7b",
      "tree": "4a25b6914c44f51079ae8076654f6ba210e0dac1",
      "parents": [
        "0745e5576205cd05fada5bb2e01500d97e1a04be"
      ],
      "author": {
        "name": "ZhuHaiCheng",
        "email": "zhuhai@52it.net",
        "time": "Sun Jan 12 20:49:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 12 07:49:28 2025 -0500"
      },
      "message": "chore: fix function name in comment (#2216)\n\nSigned-off-by: zhuhaicity \u003czhuhai@52it.net\u003e"
    },
    {
      "commit": "0745e5576205cd05fada5bb2e01500d97e1a04be",
      "tree": "fe9684c05777d30195bd8aa560cd821243a08863",
      "parents": [
        "d1e9d85fcf592461f3bc2f4b6d5e140c4c0aabf8"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Sat Dec 28 23:41:43 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 28 17:41:43 2024 -0500"
      },
      "message": "completion: improve detection for flags that accept multiple values (#2210)\n\nThe completion code attempts to detect whether a flag can be specified\r\nmore than once, and therefore should provide completion even if already\r\nset.\r\n\r\nCurrently, this code depends on conventions used in the pflag package,\r\nwhich uses an \"Array\" or \"Slice\" suffix or for some types a \"stringTo\"\r\nprefix.\r\n\r\nCobra allows custom value types to be used, which may not use the same\r\nconvention for naming, and therefore currently aren\u0027t detected to allow\r\nmultiple values.\r\n\r\nThe pflag module defines a [SliceValue] interface, which is implemented\r\nby the Slice and Array value types it provides (unfortunately, it\u0027s not\r\ncurrently implemented by the \"stringTo\" values).\r\n\r\nThis patch adds a reduced interface based on the [SliceValue] interface\r\nmentioned above to allow detecting Value-types that accept multiple values.\r\nCustom types can implement this interface to make completion work for\r\nthose values.\r\n\r\nI deliberately used a reduced interface to keep the requirements for this\r\ndetection as low as possible, without enforcing the other methods defined\r\nin the interface (Append, Replace) which may not apply to all custom types.\r\n\r\nFuture improvements can likely still be made, considering either implementing\r\nthe SliceValue interface for the \"stringTo\" values or defining a separate\r\n\"MapValue\" interface for those types.\r\n\r\nPossibly providing the reduced interface as part of the pflag module and\r\nto export it.\r\n\r\n[SliceValue]: https://github.com/spf13/pflag/blob/d5e0c0615acee7028e1e2740a11102313be88de1/flag.go#L193-L203\r\n\r\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e\r\nCo-authored-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "d1e9d85fcf592461f3bc2f4b6d5e140c4c0aabf8",
      "tree": "d522cfdf44ff05e75fd2dbd544e32f895c33f6a3",
      "parents": [
        "9f9056765ccb3bfb1c72a560b4c6edbff71c0f32"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Sat Dec 28 23:07:03 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 28 17:07:03 2024 -0500"
      },
      "message": "Make detection for test-binary more universal (#2173)\n\nWhen running tests in verbose mode (or other options), tests involving\r\nCobra may fail if the test does not explicitly set Command.args to an\r\nempty slice; in this case, Cobra defaults to using `os.Args`, which\r\nwill contain arguments passed to the test (such as `-v` (verbose)).\r\n\r\nCommits e5762054c9a6429fa7c234897707d and 1ef0913976db2004980575ed815c3\r\nimplemented a workaround for this when running (unit) tests for Cobra\r\nitself, but this check is specifig to Cobra (checking for `cobra.test`),\r\nand don\u0027t work on Windows (which will have a `.exe` extension),\r\n\r\nThis patch implements a more universal check, so that users of Cobra\r\nas a module also benefit from this workaround.\r\n\r\ngo1.21 and up provides a `testing.Testing()` utility ([1]); as the Cobra\r\nmodule still supports Go1.16 and up, an alternative implementation was\r\nadded for older versions, based on golang.org/x/mod/lazyregexp [2].\r\n\r\nBefore this patch:\r\n\r\n    go test -c -o foo.test\r\n\r\n    ./foo.test -test.run TestNoArgs\r\n    --- FAIL: TestNoArgs (0.00s)\r\n        args_test.go:37: Unexpected output: Error: unknown command \"TestNoArgs\" for \"c\"\r\n            Usage:\r\n              c [flags]\r\n\r\n            Flags:\r\n              -h, --help   help for c\r\n\r\n        args_test.go:40: Unexpected error: unknown command \"TestNoArgs\" for \"c\"\r\n    FAIL\r\n\r\nAfter this patch:\r\n\r\n    go test -c -o foo.test\r\n\r\n    ./foo.test -test.run TestNoArgs\r\n    PASS\r\n\r\n[1]: https://pkg.go.dev/testing#Testing\r\n[2]: https://cs.opensource.google/go/x/mod/+/refs/tags/v0.19.0:internal/lazyregexp/lazyre.go;l\u003d66-78\r\n\r\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e\r\nCo-authored-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "9f9056765ccb3bfb1c72a560b4c6edbff71c0f32",
      "tree": "47a8b87ef1acee15a2f039898c93236cc65e3aa3",
      "parents": [
        "85196307501d10f7723712ca0b81e37a1c2e7bf8"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Dec 17 03:26:34 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 16 21:26:34 2024 -0500"
      },
      "message": "build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.5 to 2.0.6 (#2206)\n\nfix compatibility with go versions before go1.17\r\n\r\ndiff: https://github.com/cpuguy83/go-md2man/compare/v2.0.5...v2.0.6\r\n\r\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e"
    },
    {
      "commit": "85196307501d10f7723712ca0b81e37a1c2e7bf8",
      "tree": "e83cc53dc3510c2f4b4ad112bc75f0ee8fbeb1d1",
      "parents": [
        "02326d52c0704d79169819698693b0698e748f55"
      ],
      "author": {
        "name": "Mikel Olasagasti Uranga",
        "email": "mikel@olasagasti.info",
        "time": "Wed Dec 11 13:26:08 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 11 07:26:08 2024 -0500"
      },
      "message": "Update to latest go-md2man (#2201)\n\nSince cpuguy83/go-md2man 2.0.5 no paraTag is written after \"SEE ALSO\".\r\n\r\nWith go-md2man 2.0.4:\r\n\r\n.SH SEE ALSO\r\n.PP\r\n\\fBroot-bbb(1)\\fP, \\fBroot-ccc(1)\\fP\r\n\r\nWith go-md2man 2.0.5:\r\n\r\n.SH SEE ALSO\r\n\\fBroot-bbb(1)\\fP, \\fBroot-ccc(1)\\fP\r\n\r\nSee: https://github.com/cpuguy83/go-md2man/pull/122\r\n\r\nSigned-off-by: Mikel Olasagasti Uranga \u003cmikel@olasagasti.info\u003e"
    },
    {
      "commit": "02326d52c0704d79169819698693b0698e748f55",
      "tree": "9a380c74edf8f18b48356694eb096d1768a390bf",
      "parents": [
        "5a138f143f25d616c6c195356a6560ed4fbbfdd4"
      ],
      "author": {
        "name": "Vui Lam",
        "email": "vui.lam@broadcom.com",
        "time": "Tue Nov 05 03:19:24 2024 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 05 06:19:24 2024 -0500"
      },
      "message": "Fix broken links in active_help.md (#2202)\n\nSmall change to fix a couple of broken links in active_help.md\r\n\r\nSigned-off-by: Vui Lam \u003cvui.lam@broadcom.com\u003e"
    },
    {
      "commit": "5a138f143f25d616c6c195356a6560ed4fbbfdd4",
      "tree": "574c79a78a74d808887ddc15c42416b38fded1ba",
      "parents": [
        "3a5efaede9d389703a792e2f7bfe3a64bc82ced9"
      ],
      "author": {
        "name": "Leonhard Stemplinger",
        "email": "42673430+lstemplinger@users.noreply.github.com",
        "time": "Mon Nov 04 01:45:01 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 03 19:45:01 2024 -0500"
      },
      "message": "Make Powershell completion script work in constrained mode (#2196)\n\nCreating CompletionResult objects is not allowed in Powershell constrained mode, so return results as strings if constrained mode is enabled\r\n\r\nStore results as PsCustomObjects instead of hashtables. This prevents Sort-Object from trying to convert the hashtable to a object, which is blocked in constrained mode.\r\nPsCustomObjects are created using New-Object to work around https://github.com/PowerShell/PowerShell/issues/20767"
    },
    {
      "commit": "3a5efaede9d389703a792e2f7bfe3a64bc82ced9",
      "tree": "9b2523ed4fa4a1b756cbc9e900862bd785a58086",
      "parents": [
        "5bef9d8d87ad1a1c73e74361bad9e38b3469a58e"
      ],
      "author": {
        "name": "Maxwel Mazur",
        "email": "52722027+maxwelbm@users.noreply.github.com",
        "time": "Wed Oct 16 15:13:47 2024 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 16 14:13:47 2024 -0400"
      },
      "message": "doc: azion project added to the list of CLIs that use cobra (#2198)\n\n"
    },
    {
      "commit": "5bef9d8d87ad1a1c73e74361bad9e38b3469a58e",
      "tree": "21842ff5fe66eeb0af892d3a083cbaee58bdb59f",
      "parents": [
        "ff7c561cf741ac36ab319f528d93e738ae284835"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sat Oct 12 19:08:27 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 12 12:08:27 2024 -0400"
      },
      "message": "Fix --version help and output for plugins (#2180)\n\n* Fix --version help with CommandDisplayNameAnnotation\r\n\r\nWhen setting Command.Version, a --version option is added. The help\r\nmessage for the --version command did not consider the command display\r\nname:\r\n\r\n    Flags:\r\n      -h, --help      help for kubectl plugin\r\n      -v, --version   version for kubectl-plugin\r\n\r\nWith this change the help test is consistent with other flags:\r\n\r\n    Flags:\r\n      -h, --help      help for kubectl plugin\r\n      -v, --version   version for kubectl plugin\r\n\r\n* Make command DisplayName() public\r\n\r\nThis allows using the display name in templates or other code that want\r\nto use the same value.\r\n\r\n* Use display name in version template\r\n\r\nThe version template used `{{.Name}}` but for plugins you want to use\r\n`{{.DisplayName}}` to be consistent with other help output.\r\n\r\nWith this change will show:\r\n\r\n    $ kubectl plugin --version\r\n    kubectl plugin version 1.0.0\r\n"
    },
    {
      "commit": "ff7c561cf741ac36ab319f528d93e738ae284835",
      "tree": "5fb1d5c464b60a8cd674c437a58cd3d628483555",
      "parents": [
        "11ab62158ac7079acb819b02c25c9a1ee2eb5eb6"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sat Oct 12 18:35:01 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 12 11:35:01 2024 -0400"
      },
      "message": "Improve site formatting (#2183)\n\n* Improve site formatting\r\n\r\n- Separate titles with blank lines\r\n- Separate code blocks with blank lines\r\n- Always use ``` blocks for examples\r\n- Use console for console (bash syntax highlighting does work well with\r\n  example command output)\r\n- Start console examples with $ (highlight command and output\r\n  differently and more friendly to other shells users)\r\n\r\n* Unify indentation in example project structure\r\n\r\n* Use single import line in the trivial examples\r\n\r\nWhen we want to show a minimal example with single import it looks\r\ncleaner and more minimal with a single line."
    },
    {
      "commit": "11ab62158ac7079acb819b02c25c9a1ee2eb5eb6",
      "tree": "85920b0ee5690c713fbf7e6da8c293a687396bc4",
      "parents": [
        "78bfc837fe358c750faa7e7f0a8016b300044d58"
      ],
      "author": {
        "name": "Ikko Eltociear Ashimine",
        "email": "eltociear@gmail.com",
        "time": "Fri Oct 11 19:40:47 2024 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 11 06:40:47 2024 -0400"
      },
      "message": "docs: update README.md (#2197)\n\nminor fix"
    },
    {
      "commit": "78bfc837fe358c750faa7e7f0a8016b300044d58",
      "tree": "ee01b9a3654b0b15219302b0a6a7c13bad6527e3",
      "parents": [
        "511af59cb3602540a636d8f5ed52f09e60804ce1"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sun Aug 25 02:02:44 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 24 19:02:44 2024 -0400"
      },
      "message": "Test also with go 1.23 (#2182)\n\n"
    },
    {
      "commit": "511af59cb3602540a636d8f5ed52f09e60804ce1",
      "tree": "18f41df55d6d687ac8632c552fcfa366c541cd50",
      "parents": [
        "756ba6dad61458cbbf7abecfc502d230574c57d2"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sat Aug 24 14:05:26 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 24 07:05:26 2024 -0400"
      },
      "message": "Replace deprecated ioutil usage (#2181)\n\nFixing golangci-lint errors[1]:\r\n\r\n    Error: SA1019: \"io/ioutil\" has been deprecated since Go 1.19: As of\r\n    Go 1.16, the same functionality is now provided by package [io] or\r\n    package [os], and those implementations should be preferred in new\r\n    code. See the specific function documentation for details.\r\n    (staticcheck)\r\n\r\n[1] https://github.com/spf13/cobra/actions/runs/10535452454/job/29194442289?pr\u003d2180"
    },
    {
      "commit": "756ba6dad61458cbbf7abecfc502d230574c57d2",
      "tree": "7cc8a7e4187be2c41571d0e572e46db147526b31",
      "parents": [
        "371ae25d2c82e519feb48c82d142e6a696fd06dd"
      ],
      "author": {
        "name": "Gabe Cook",
        "email": "gabe565@gmail.com",
        "time": "Sun Jul 28 11:18:07 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 28 12:18:07 2024 -0400"
      },
      "message": "fix(completions): Complete map flags multiple times (#2174)\n\n"
    },
    {
      "commit": "371ae25d2c82e519feb48c82d142e6a696fd06dd",
      "tree": "4734d866aca8ad658d983a88c27255af9c0440fb",
      "parents": [
        "e94f6d0dd9a5e5738dca6bce03c4b1207ffbc0ec"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Jul 17 01:36:29 2024 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 16 19:36:29 2024 -0400"
      },
      "message": "Fix deprecation comment for Command.SetOutput (#2172)\n\nDeprecation comments should be at the start of a paragraph [1], and because\r\nof that have a whitespace above them [2];\r\n\r\n\u003e To signal that an identifier should not be used, add a paragraph to its\r\n\u003e doc comment that begins with Deprecated: followed by some information\r\n\u003e about the deprecation (...)\r\n\r\nWith the whitespace missing, some tools, including pkg.go.dev [3] don\u0027t\r\ndetect it to be deprecated.\r\n\r\n[1]: https://go.dev/wiki/Deprecated\r\n[2]: https://go.dev/doc/comment#paragraphs\r\n[3]: https://pkg.go.dev/github.com/spf13/cobra@v1.8.1#Command.SetOutput\r\n\r\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e"
    },
    {
      "commit": "e94f6d0dd9a5e5738dca6bce03c4b1207ffbc0ec",
      "tree": "905abb48cfc2a0f990a9043de6b04cae3d12ec4b",
      "parents": [
        "8003b74a10ef0d0d84fe3c408d3939d86fdeb210"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Sat Jun 01 13:31:11 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 01 06:31:11 2024 -0400"
      },
      "message": "Address golangci-lint deprecation warnings, enable some more linters (#2152)\n\n* Address golangci-lint linter deprecation warnings\r\n\r\n1.59.0 outputs:\r\n\r\nWARN [lintersdb] The name \"gas\" is deprecated. The linter has been renamed to: gosec.\r\nWARN [lintersdb] The linter named \"megacheck\" is deprecated. It has been split into: gosimple, staticcheck, unused.\r\n\r\n* Enable some more linters, address finding"
    },
    {
      "commit": "8003b74a10ef0d0d84fe3c408d3939d86fdeb210",
      "tree": "69ec640bf8b0d2e548715a54d3ff2c5656f4a782",
      "parents": [
        "5c2c1d627d35a00153764a3d37400efc66eaca1c"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sun May 19 05:12:02 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 18 22:12:02 2024 -0400"
      },
      "message": "Remove fully inactivated linters (#2148)\n\n* Remove fully inactivated linters\r\n\r\nCurrently golangci-lint fails with these errors:\r\n\r\nERRO [linters_context] golint: This linter is fully inactivated: it will not produce any reports.\r\nERRO [linters_context] interfacer: This linter is fully inactivated: it will not produce any reports.\r\nERRO [linters_context] maligned: This linter is fully inactivated: it will not produce any reports.\r\n\r\nI could not find any docs explaining what \"fully inactivated\" mean, but\r\nbased this PR[1] it seems that these linters do nothing now. Removing\r\nthe linters fixes this issue without changing linting, as they did not\r\nproduce any report.\r\n\r\nLooking in the linters docs[2] I did not find a replacement for\r\n\"interfacer\" and \"malinged\" linters. \"stylecheck\" seems to be a\r\nreplacement for \"golint\", but we need to fix the code to enable it.\r\n\r\n[1] https://github.com/golangci/golangci-lint/pull/4436\r\n[2] https://golangci-lint.run/usage/linters/\r\n\r\n* Add stylecheck linter, replacement for golint\r\n\r\nThis revealed 2 capitalized error messages.\r\n\r\nhttps://golangci-lint.run/usage/linters/#stylecheck"
    },
    {
      "commit": "5c2c1d627d35a00153764a3d37400efc66eaca1c",
      "tree": "3aeba9a0f3791705e04be8851b22edd5fe35693c",
      "parents": [
        "5a1acea3210649f3d70002818ec04b09f6347062"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sat May 18 16:41:31 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 18 09:41:31 2024 -0400"
      },
      "message": "Consistent annotation names (#2140)\n\nAdd `Annotation` suffix to the private annotations to allow nicer code\r\nusing the constants.\r\n\r\nFor example one can use the current annotation names as a temporary\r\nvariable instead of unclear shortcut. Instead of this:\r\n\r\n    rag :\u003d flagsFromAnnotation(c, f, requiredAsGroup)\r\n    me :\u003d flagsFromAnnotation(c, f, mutuallyExclusive)\r\n    or :\u003d flagsFromAnnotation(c, f, oneRequired)\r\n\r\nWe can use now:\r\n\r\n    requiredAsGrop :\u003d flagsFromAnnotation(c, f, requiredAsGroupAnnotation)\r\n    mutuallyExclusive :\u003d flagsFromAnnotation(c, f, mutuallyExclusiveAnnotation)\r\n    oneRequired :\u003d flagsFromAnnotation(c, f, oneRequiredAnnotation)\r\n\r\nExample taken from #2105."
    },
    {
      "commit": "5a1acea3210649f3d70002818ec04b09f6347062",
      "tree": "b46f95c046b9906d3ed66c2ee858c77a6a077f36",
      "parents": [
        "0fc86c2ffd0326b6f6ed5fa36803d26993655c08"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Apr 13 02:21:03 2024 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 13 02:21:03 2024 +0000"
      },
      "message": "build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.3 to 2.0.4 (#2127)\n\n"
    },
    {
      "commit": "0fc86c2ffd0326b6f6ed5fa36803d26993655c08",
      "tree": "96b197d78955170aac0421f51979e30ed9a84117",
      "parents": [
        "6b5f577ebce858ee70fcdd1f062ea3af4b1c03ab"
      ],
      "author": {
        "name": "Xinwei Xiong",
        "email": "3293172751NSS@gmail.com",
        "time": "Mon Apr 08 18:47:35 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 08 06:47:35 2024 -0400"
      },
      "message": "docs: update user guide (#2128)\n\n"
    },
    {
      "commit": "6b5f577ebce858ee70fcdd1f062ea3af4b1c03ab",
      "tree": "a935bf3c223ed40d20897a2936508267a32e4a69",
      "parents": [
        "bd914e58d69d65e494b45bdb40e90ca816b92fcc"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Mon Apr 01 12:42:08 2024 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 01 08:42:08 2024 -0400"
      },
      "message": "More linting (#2099)\n\n* Address gocritic findings, enable it\r\n\r\n* Enable gosimple, no new findings to address"
    },
    {
      "commit": "bd914e58d69d65e494b45bdb40e90ca816b92fcc",
      "tree": "0e1c4440c577b33acf675c247c440648280589b5",
      "parents": [
        "1f80fa2e23cc550c131e8a54dc72d11b265c6fcf"
      ],
      "author": {
        "name": "Pedro Mota",
        "email": "p.smota98@gmail.com",
        "time": "Tue Mar 12 07:42:46 2024 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 12 06:42:46 2024 -0400"
      },
      "message": "fix: remove deprecated io/ioutils package (#2120)\n\nioutils.ReadAll is deprecated since Go 1.16. This commit replaces it with\r\nio.ReadAll. See https://pkg.go.dev/io/ioutil\\#ReadAll for reference\r\n\r\nIssue #2119"
    },
    {
      "commit": "1f80fa2e23cc550c131e8a54dc72d11b265c6fcf",
      "tree": "92e42e85bad2868c976d3b0a24cb2d8142a0ba51",
      "parents": [
        "c69ae4c36b134dd69e5ab9d3d6b9f571ca5afe1e"
      ],
      "author": {
        "name": "racerole",
        "email": "148756161+racerole@users.noreply.github.com",
        "time": "Tue Mar 12 18:40:19 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 12 06:40:19 2024 -0400"
      },
      "message": "chore: remove repetitive words (#2122)\n\nSigned-off-by: racerole \u003cjiangyifeng@outlook.com\u003e"
    },
    {
      "commit": "c69ae4c36b134dd69e5ab9d3d6b9f571ca5afe1e",
      "tree": "179d034447d154bd1545b3c5c996e1721baffb25",
      "parents": [
        "a30cee5e5ab0949cc888ef00ae6aee24e091e042"
      ],
      "author": {
        "name": "damas",
        "email": "19289022+cyrilico@users.noreply.github.com",
        "time": "Tue Mar 12 10:40:01 2024 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 12 06:40:01 2024 -0400"
      },
      "message": "ci: test golang 1.22 (#2113)\n\n"
    },
    {
      "commit": "a30cee5e5ab0949cc888ef00ae6aee24e091e042",
      "tree": "688e0269bfc24d13604346c91fe8d2c539d45ec6",
      "parents": [
        "f34069ccf5d77bdc4799389a1700d8f7b3e38cf3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 11 19:36:37 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 11 19:36:37 2024 -0600"
      },
      "message": "build(deps): bump actions/cache from 3 to 4 (#2102)\n\nBumps [actions/cache](https://github.com/actions/cache) from 3 to 4.\r\n- [Release notes](https://github.com/actions/cache/releases)\r\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\r\n- [Commits](https://github.com/actions/cache/compare/v3...v4)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/cache\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-major\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f34069ccf5d77bdc4799389a1700d8f7b3e38cf3",
      "tree": "eb1617a1af62b2fb7e2aa004c38c9645e88d910a",
      "parents": [
        "bd2655e76c8b499761dc8b664c8b04dbfd828354"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 11 19:35:05 2024 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 11 19:35:05 2024 -0600"
      },
      "message": "build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 (#2108)\n\nBumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.7.0 to 4.0.0.\r\n- [Release notes](https://github.com/golangci/golangci-lint-action/releases)\r\n- [Commits](https://github.com/golangci/golangci-lint-action/compare/v3.7.0...v4.0.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: golangci/golangci-lint-action\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-major\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "bd2655e76c8b499761dc8b664c8b04dbfd828354",
      "tree": "35faf3309b575d2cbeb6167623adf3c0b168c6e8",
      "parents": [
        "bcfcff729ecdeb4072ef6f2a9c0b5e4ca1853206"
      ],
      "author": {
        "name": "montag451",
        "email": "montag451@laposte.net",
        "time": "Fri Mar 08 01:36:58 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 07 19:36:58 2024 -0500"
      },
      "message": "Add Incus to the list of projects using Cobra (#2118)\n\n"
    },
    {
      "commit": "bcfcff729ecdeb4072ef6f2a9c0b5e4ca1853206",
      "tree": "f69636a576c16636fea44f01246b7d607178fd0c",
      "parents": [
        "4fb0a66a3436bd34b03b858c729404e99cd3124f"
      ],
      "author": {
        "name": "Radek Smid",
        "email": "rad.smid@gmail.com",
        "time": "Mon Jan 15 14:38:50 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 15 08:38:50 2024 -0500"
      },
      "message": "Add Taikun CloudWorks to list of projects (#2098)\n\n"
    },
    {
      "commit": "4fb0a66a3436bd34b03b858c729404e99cd3124f",
      "tree": "22119fb32f3645fa075b534b0e7580b3e955f205",
      "parents": [
        "0dec88e7931d4c5d5583e69b12e245741d9f1353"
      ],
      "author": {
        "name": "Dmytro Milinevskyi",
        "email": "dmytro.milinevskyi@datadoghq.com",
        "time": "Sat Jan 06 22:49:13 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 06 16:49:13 2024 -0500"
      },
      "message": "flags: clarify documentation that LocalFlags related function do not modify the state (#2064)\n\n"
    },
    {
      "commit": "0dec88e7931d4c5d5583e69b12e245741d9f1353",
      "tree": "e1982bf24c2a12e9cc095c1a8f556736fdad012e",
      "parents": [
        "cbcf75eab98095a631a917692f9667b55d3ccfd6"
      ],
      "author": {
        "name": "Denis",
        "email": "43725617+korovindenis@users.noreply.github.com",
        "time": "Sat Dec 30 16:40:15 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 30 08:40:15 2023 -0500"
      },
      "message": "Add tests for funcs in cobra.go (#2094)\n\n"
    },
    {
      "commit": "cbcf75eab98095a631a917692f9667b55d3ccfd6",
      "tree": "95775d1514c4b5a27f39c0e5726209f89dc9d035",
      "parents": [
        "199b7abe121caf41a163289041b13b0ca2418a72"
      ],
      "author": {
        "name": "Case Wylie",
        "email": "cmwylie19@gmail.com",
        "time": "Wed Dec 27 21:16:29 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 27 21:16:29 2023 -0500"
      },
      "message": "[chore]: update projects using cobra (#2093)\n\nSigned-off-by: Case Wylie \u003ccmwylie19@defenseunicorns.com\u003e"
    },
    {
      "commit": "199b7abe121caf41a163289041b13b0ca2418a72",
      "tree": "f6936862b5a6ce1675d6bec55f0651a93176a056",
      "parents": [
        "531ce793e3a44b949b1d0296a382f4f3a2c9da0d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Dec 23 14:52:45 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 23 14:52:45 2023 -0500"
      },
      "message": "build(deps): bump actions/labeler from 4 to 5 (#2086)\n\n* build(deps): bump actions/labeler from 4 to 5\r\n\r\nBumps [actions/labeler](https://github.com/actions/labeler) from 4 to 5.\r\n- [Release notes](https://github.com/actions/labeler/releases)\r\n- [Commits](https://github.com/actions/labeler/compare/v4...v5)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/labeler\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-major\r\n...\r\n\r\n* Update labeler configuration for v5\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\r\nCo-authored-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "531ce793e3a44b949b1d0296a382f4f3a2c9da0d",
      "tree": "217bdc224697e96da9509ec51ecb96ecbf5de71c",
      "parents": [
        "c054701f6a5522c259dabfd206c54b41e1788519"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat Dec 23 10:11:53 2023 -0500"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat Dec 23 13:49:43 2023 -0500"
      },
      "message": "Remove extra actions/checkout\n\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e\n"
    },
    {
      "commit": "c054701f6a5522c259dabfd206c54b41e1788519",
      "tree": "98bb4d9524549a11d677f76b91e7943a4526f811",
      "parents": [
        "41227856cd731aeeeb5a2f7203b3a4c16b81fc67"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Dec 11 10:06:36 2023 +0000"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat Dec 23 13:49:43 2023 -0500"
      },
      "message": "build(deps): bump actions/setup-go from 4 to 5\n\nBumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5.\n- [Release notes](https://github.com/actions/setup-go/releases)\n- [Commits](https://github.com/actions/setup-go/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-go\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "41227856cd731aeeeb5a2f7203b3a4c16b81fc67",
      "tree": "45ff52de86bb539bef0e84cff43cdf591e51bce7",
      "parents": [
        "a73b9c391a9489d20f5ee1480e75d3b99fc8c7e2"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sun Nov 12 15:55:40 2023 +0200"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sun Dec 17 19:58:57 2023 -0500"
      },
      "message": "Document how to create a plugin\n\nUsing the new CommandDisplayNameAnnotation annotation introduced in\nCobra 1.8.0.\n"
    },
    {
      "commit": "a73b9c391a9489d20f5ee1480e75d3b99fc8c7e2",
      "tree": "26c46362fdb807796a02f64c70232e17d1c46e00",
      "parents": [
        "df547f5fc6ee86071f73c36c16afd885bb4e3f28"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sun Nov 12 20:07:59 2023 +0200"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sun Dec 17 19:58:57 2023 -0500"
      },
      "message": "Fix help text for runnable plugin command\n\nWhen creating a plugin without sub commands, the help text included the\ncommand name (kubectl-plugin) instead of the display name (kubectl plugin):\n\n    Usage:\n      kubectl-plugin [flags]\n\nThe issue is that the usage line for this case does not use the\ncommand path but the raw `Use` string, and this case was not tested.\n\nAdd a test for this case and fix UsageLine() to replace the command name\nwith the display name.\n\nTested using https://github.com/nirs/kubernetes/tree/sample-cli-plugin-help\n"
    },
    {
      "commit": "df547f5fc6ee86071f73c36c16afd885bb4e3f28",
      "tree": "fd4019939753cfb354405f79225d656644e55f40",
      "parents": [
        "e63925d3216142ba2c8d7641d729c6c15f4433e7"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nsoffer@redhat.com",
        "time": "Sun Nov 12 17:20:47 2023 +0200"
      },
      "committer": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sun Dec 17 19:58:57 2023 -0500"
      },
      "message": "Fix help text for plugins\n\nWhen using `CommandDisplayNameAnnotation` we want to use it instead of\nthe command name in `--help` message or in the default help command.\n\nWith current code we get the wrong text in the --help usage text:\n\n    Flags:\n      -h, --help   help for kubectl-plugin\n\nAnd in the long description of the default help command:\n\n    $ kubectl cobraplugin help -h\n    Help provides help for any command in the application.\n    Simply type kubectl-plugin help [path to command] for full details.\n\nThe issue was hidden since the test checked only the Usage line.\n\nFixed by extracting a displayName() function and use it when creating\nFlagSet and when formatting the default help flag usage and the help\ncommand long description.\n\nEnhance the TestPlugin to check all the lines including the command\nname.\n"
    },
    {
      "commit": "e63925d3216142ba2c8d7641d729c6c15f4433e7",
      "tree": "2531f88babe3f5d4b57bcdaab3062759c1045b95",
      "parents": [
        "236f3c0418a1912d32159ad9c0b74f3f03764f5d"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Sun Dec 17 20:50:59 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 17 13:50:59 2023 -0500"
      },
      "message": "Add env variable to suppress completion descriptions on create (#1938)\n\nCOBRA_COMPLETION_DESCRIPTIONS\u003d0 \r\nor \r\n\u003cPROGRAM\u003e_COMPLETION_DESCRIPTIONS\u003d0\r\ncan now be used to disable shell completion descriptions.\r\n"
    },
    {
      "commit": "236f3c0418a1912d32159ad9c0b74f3f03764f5d",
      "tree": "1b49c3234acdf396f2da7fb8b84e2115fd63dfda",
      "parents": [
        "3d8ac432bdad89db04ab0890754b2444d7b4e1cf"
      ],
      "author": {
        "name": "Marcus Kohlberg",
        "email": "78424526+marcuskohlberg@users.noreply.github.com",
        "time": "Tue Dec 12 17:26:29 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 12 11:26:29 2023 -0500"
      },
      "message": "Update projects_using_cobra.md (#2089)\n\nAdd Encore to the list of projects using Cobra"
    },
    {
      "commit": "3d8ac432bdad89db04ab0890754b2444d7b4e1cf",
      "tree": "a6e5b96ba4066dad401110fafc75f3b7ae569243",
      "parents": [
        "283e32d8896fb1beb9d07c742ed16fa2c182ee65"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Thu Nov 23 19:24:33 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 23 12:24:33 2023 -0500"
      },
      "message": "Micro-optimizations (#1957)\n\n* Avoid redundant string splits\r\n\r\nThere likely isn\u0027t actually more than once to split in the source\r\nstrings in these cases, but avoid doing so anyway as we\u0027re only\r\ninterested in the first.\r\n\r\n* Avoid redundant completion output target evaluations\r\n\r\nThe target is not to be changed while outputting completions, so resolve\r\nit only once.\r\n\r\n* Avoid redundant active help enablement evaluations\r\n\r\nThe enablement state is not to be changed during completion output, so\r\nevaluate it only once.\r\n\r\n* Preallocate some slices and maps with known size\r\n\r\n* Avoid some unnecessary looping\r\n\r\n* Use strings.Builder to construct suggestions"
    },
    {
      "commit": "283e32d8896fb1beb9d07c742ed16fa2c182ee65",
      "tree": "eb6893231da937949f7d39b7faec34cc1d614a86",
      "parents": [
        "a0a6ae020bb3899ff0276067863e50523f897370"
      ],
      "author": {
        "name": "SwagPack",
        "email": "belwalkarvarad@gmail.com",
        "time": "Mon Nov 13 22:25:06 2023 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 13 11:55:06 2023 -0500"
      },
      "message": "Add LXC to the list of projects using cobra (#2071)\n\n"
    },
    {
      "commit": "a0a6ae020bb3899ff0276067863e50523f897370",
      "tree": "8590b318bb54874bf1f0c597ff503f8c3b9ace75",
      "parents": [
        "890302a35f578311404a462b3cdd404f34db3720"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Thu Nov 02 11:23:08 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 02 11:23:08 2023 -0400"
      },
      "message": "Improve API to get flag completion function (#2063)\n\nThe new API is simpler and matches the `c.RegisterFlagCompletionFunc()`\r\nAPI.  By removing the global function `GetFlagCompletion()` we are more\r\nfuture proof if we ever move from a global map of flag completion\r\nfunctions to something associated with the command.\r\n\r\nThe commit also makes this API work with persistent flags by using\r\n`c.Flag(flagName)` instead of `c.Flags().Lookup(flagName)`.\r\n\r\nThe commit also adds unit tests.\r\n\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "890302a35f578311404a462b3cdd404f34db3720",
      "tree": "bf1065c4eb95f2c10de8c1c80c2b58a4572f9f20",
      "parents": [
        "48cea5c87b5299b68c3f5b7f2c67ea948717276f"
      ],
      "author": {
        "name": "Nir Soffer",
        "email": "nirsof@gmail.com",
        "time": "Thu Nov 02 14:15:26 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 02 08:15:26 2023 -0400"
      },
      "message": "Support usage as plugin for tools like kubectl (#2018)\n\nIn this case the executable is `kubectl-plugin`, but we run it as:\r\n\r\n    kubectl plugin\r\n\r\nAnd the help text should reflect the actual usage of the command.\r\n\r\nTo create a plugin, add the cobra.CommandDisplayNameAnnotation:\r\n\r\n    rootCmd :\u003d \u0026cobra.Command{\r\n        Use: \"plugin\",\r\n        Annotations: map[string]string{\r\n            cobra.CommandDisplayNameAnnotation: \"kubectl plugin\",\r\n        }\r\n    }\r\n\r\nInternally this change modifies CommandPath() for the root command to\r\nreturn the command display name instead of the command name. This is\r\nused for error messages, help text generation, and completions.\r\n\r\nCommandPath() is expected to have spaces and code using it already\r\nhandle spaces (e.g replacing with _), so hopefully this does not break\r\nanything.\r\n\r\nFixes: #2017\r\n\r\nSigned-off-by: Nir Soffer \u003cnsoffer@redhat.com\u003e"
    },
    {
      "commit": "48cea5c87b5299b68c3f5b7f2c67ea948717276f",
      "tree": "e8b2ee5bfaf7d3c83bc6561a42c7ecdcc154cee6",
      "parents": [
        "22953d88453ec9343b4a78b9d67400a3326f3138"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 30 10:21:48 2023 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 30 10:21:48 2023 +0000"
      },
      "message": "build(deps): bump actions/checkout from 3 to 4 (#2028)\n\n"
    },
    {
      "commit": "22953d88453ec9343b4a78b9d67400a3326f3138",
      "tree": "ea219333aa8caea91bfd98f31bae4bf7907e0080",
      "parents": [
        "00b68a1c260eaf2b9bcb10a3178d36cec81548ca"
      ],
      "author": {
        "name": "Ville Skyttä",
        "email": "ville.skytta@upcloud.com",
        "time": "Sun Oct 29 20:06:51 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 29 12:06:51 2023 -0600"
      },
      "message": "Replace all non-alphanumerics in active help env var program prefix (#1940)\n\n* Replace all non-alphanumerics in active help env var program prefix\r\n\r\nThere are other characters besides the dash that are fine in program\r\nnames, but are problematic in environment variable names. These include\r\n(but are not limited to) period, space, and non-ASCII letters.\r\n\r\n* Another change in docs to mention non-ASCII-alphanumeric instead of just dash"
    },
    {
      "commit": "00b68a1c260eaf2b9bcb10a3178d36cec81548ca",
      "tree": "680d2b88acdcf4f74dee37550deb2aa910fd90ff",
      "parents": [
        "b711e8760b73c6aa1b4aa1bef3a26da5926f175d"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat Oct 28 16:11:59 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 28 16:11:59 2023 -0400"
      },
      "message": "Add tests for flag completion registration (#2053)\n\nDifferent problems have been reported about flag completion registration.\r\nThese two tests are the cases that were not being verified but had been\r\nmentioned as problematic.\r\n\r\nRef:\r\n- https://github.com/spf13/cobra/issues/1320\r\n- https://github.com/spf13/cobra/pull/1438#issuecomment-872928669\r\n\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "b711e8760b73c6aa1b4aa1bef3a26da5926f175d",
      "tree": "ad0d82e9fd85f115ba3bbe2e350ac10e003465b4",
      "parents": [
        "8b1eba47616566fc4d258a93da48d5d8741865f0"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Sat Oct 28 16:10:06 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 28 16:10:06 2023 -0400"
      },
      "message": "Don\u0027t complete --help flag when flag parsing disabled (#2061)\n\nFixes #2060\r\n\r\nWhen a command sets `DisableFlagParsing \u003d true` it requests the\r\nresponsibility of doing all the flag parsing. Therefore even the\r\n`--help/-f/--version/-v` flags should not be automatically completed\r\nby Cobra in such a case.\r\n\r\nWithout this change the `--help/-h/--version/-v` flags can end up being\r\ncompleted twice for plugins: one time from cobra and one time from the\r\nplugin (which has set `DisableFlagParsing \u003d true`).\r\n\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "8b1eba47616566fc4d258a93da48d5d8741865f0",
      "tree": "64125b418e0f1ff2dc22d3bbf86ea26c5dda2be8",
      "parents": [
        "4cafa37bc4bb85633b4245aa118280fe5a9edcd5"
      ],
      "author": {
        "name": "Marc Khouzam",
        "email": "marc.khouzam@gmail.com",
        "time": "Fri Oct 27 06:23:45 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 27 06:23:45 2023 -0400"
      },
      "message": "Fix linter errors (#2052)\n\nWhen using golangci-lint v1.55.0 some new errors were being reported.\r\n\r\nSigned-off-by: Marc Khouzam \u003cmarc.khouzam@gmail.com\u003e"
    },
    {
      "commit": "4cafa37bc4bb85633b4245aa118280fe5a9edcd5",
      "tree": "b0313b2af174c12429450c3170d98fd1f4ed8b5c",
      "parents": [
        "5c962a221e70fd6b12296e5d7075f28b422f98b2"
      ],
      "author": {
        "name": "vkhoroz",
        "email": "vkhoroz@users.noreply.github.com",
        "time": "Sun Oct 22 03:36:12 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 21 20:36:12 2023 -0400"
      },
      "message": "Allow running persistent run hooks of all parents (#2044)\n\nCurrently, only one of the persistent pre-runs and post-runs is executed.\r\nIt is always the first one found in the parents chain, starting at this command.\r\nExpected behavior is to execute all parents\u0027 persistent pre-runs and post-runs.\r\n\r\nDependent projects implemented various workarounds for this:\r\n- manually building persistent hook chains (in every hook).\r\n- applying some kind of monkey-patching on top of Cobra.\r\n\r\nThis change eliminates the necessity for such workarounds\r\nby allowing to set a global variable EnableTraverseRunHooks.\r\n\r\nTickets:\r\n- https://github.com/spf13/cobra/issues/216\r\n- https://github.com/spf13/cobra/issues/252\r\n\r\nSigned-off-by: Volodymyr Khoroz \u003cvolodymyr.khoroz@foundries.io\u003e"
    },
    {
      "commit": "5c962a221e70fd6b12296e5d7075f28b422f98b2",
      "tree": "bbc0d93bde28f42c66d7fe4a9d56a307e99b44df",
      "parents": [
        "efe8fa3e4453e41d6419b26c9769a51e42825632"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 16 10:50:33 2023 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 16 10:50:33 2023 +0000"
      },
      "message": "build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.2 to 2.0.3 (#2047)\n\n"
    },
    {
      "commit": "efe8fa3e4453e41d6419b26c9769a51e42825632",
      "tree": "7a570ec7d4d25aa6449cec123576bb3fad9f8346",
      "parents": [
        "95d8a1e45d7719c56dc017e075d3e6099deba85d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Oct 15 11:16:50 2023 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 15 11:16:50 2023 +0000"
      },
      "message": "build(deps): bump actions/setup-go from 3 to 4 (#1934)\n\n"
    },
    {
      "commit": "95d8a1e45d7719c56dc017e075d3e6099deba85d",
      "tree": "d8bfb88a8ac5ecad008c208aae1ecf226437fd77",
      "parents": [
        "bd4d1655f6655f690f45d281fe698dacb9c7d750"
      ],
      "author": {
        "name": "Haoming Meng",
        "email": "41393704+Techming@users.noreply.github.com",
        "time": "Mon Oct 09 07:50:40 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 09 08:50:40 2023 -0400"
      },
      "message": "Add notes to doc on preRun and postRun condition (#2041)\n\n"
    },
    {
      "commit": "bd4d1655f6655f690f45d281fe698dacb9c7d750",
      "tree": "b40643c53916024c0a8a48eec018714b13788129",
      "parents": [
        "0c72800b8dba637092b57a955ecee75949e79a73"
      ],
      "author": {
        "name": "Alexandru-Claudius Virtopeanu",
        "email": "alexandru-claudius.virtopeanu@ionos.com",
        "time": "Tue Sep 26 03:04:25 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 25 20:04:25 2023 -0400"
      },
      "message": "feat: add getters for flag completions (#1943)\n\n"
    },
    {
      "commit": "0c72800b8dba637092b57a955ecee75949e79a73",
      "tree": "e2b58692250875aa6295f72c1d316e6386c843d3",
      "parents": [
        "c5dacb3ea4512e6766f86907dfa7014ceb9cb041"
      ],
      "author": {
        "name": "Souma",
        "email": "101255979+5ouma@users.noreply.github.com",
        "time": "Sat Sep 09 02:29:06 2023 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 08 13:29:06 2023 -0400"
      },
      "message": "Customizable error message prefix (#2023)\n\n"
    }
  ],
  "next": "c5dacb3ea4512e6766f86907dfa7014ceb9cb041"
}
