)]}'
{
  "log": [
    {
      "commit": "078e85ae683cfcb6f0cc45dfbb7dd02aafec0046",
      "tree": "750dbf13e8d47fefc1566a9922e7a393a0661b9c",
      "parents": [
        "15c9528318131e8b903199fa7dfe82dbe7b2ed91"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu May 08 17:28:34 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu May 08 17:28:34 2025 -0700"
      },
      "message": "ssh_theater: only edit conf if host doesn\u0027t resolve\n"
    },
    {
      "commit": "15c9528318131e8b903199fa7dfe82dbe7b2ed91",
      "tree": "15997f3dd5578e975288f30b5659e95b4c84c3bf",
      "parents": [
        "220a36d6404a3a86af2537ca8572b9e28c77bcb6"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu May 08 16:48:38 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu May 08 16:48:38 2025 -0700"
      },
      "message": "ssh_theater: ask the user before editing config\n"
    },
    {
      "commit": "50608b1df40053cb18d91a8493872a7ce9243655",
      "tree": "d2955631951755d2a6f69aa2bfd26f2ca073ac5c",
      "parents": [
        "b7a066339b6a4c032524ae772aab3619edcc9c65"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Sat May 03 22:55:49 2025 +0000"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon May 05 10:19:34 2025 -0700"
      },
      "message": "dockerimg: fix typo in SSHTheater name"
    },
    {
      "commit": "0d95d3a268ffad82b7c645200804fb43ed088a81",
      "tree": "ac9a63b6648a2555382769bcd9ce157170291224",
      "parents": [
        "9c0fc89eea578d71389edb4fd7d92eb73816f528"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Wed Apr 30 16:22:28 2025 +0000"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Wed Apr 30 16:22:35 2025 +0000"
      },
      "message": "Improve SSH config file safety in dockerimg/ssh_theater.go\n\n- Add SafeWriteFile method to the FileSystem interface that:\n  - Writes data to a temporary file first\n  - Syncs to disk to ensure data is written\n  - Creates a backup of the original file (if it exists)\n  - Safely renames the temporary file to the target\n\n- Update all file modification operations to use SafeWriteFile:\n  - addContainerToSSHConfig\n  - removeContainerFromSSHConfig\n  - addContainerToKnownHosts\n  - removeContainerFromKnownHosts\n  - CheckForIncludeWithFS\n\nThis change reduces the risk of corruption if the process is interrupted\nwhile modifying configuration files.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\n"
    },
    {
      "commit": "9c0fc89eea578d71389edb4fd7d92eb73816f528",
      "tree": "b5537fe6f3456ec941dde88d1bb65792212875f8",
      "parents": [
        "c796e7fb2df221dbef753556a3077da81a7fbe0c"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Wed Apr 30 08:48:42 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Wed Apr 30 08:48:42 2025 -0700"
      },
      "message": "fmt\n"
    },
    {
      "commit": "c796e7fb2df221dbef753556a3077da81a7fbe0c",
      "tree": "652c542588c3bba3ad9897c4f5e5d231fbde7aed",
      "parents": [
        "78520f50d518f331c6608cfd0dff7bb4a75dc93b"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Wed Apr 30 08:44:06 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Wed Apr 30 08:44:55 2025 -0700"
      },
      "message": "ssh_theater: fix tests\n"
    },
    {
      "commit": "3b0795b1c52d9b470f361299e9cd359c53704a04",
      "tree": "9fab2d27f829cb93fba774f65f4a1426fec3ce05",
      "parents": [
        "74b012128c939c8fd119a4af2205451105a19ad3"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Tue Apr 29 19:09:23 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Tue Apr 29 19:39:22 2025 -0700"
      },
      "message": "ssh_theater: auto-add Include to ~/.ssh/config\n"
    },
    {
      "commit": "74b012128c939c8fd119a4af2205451105a19ad3",
      "tree": "a1b3d989ec446adc6a2b6233452c64324546ec1f",
      "parents": [
        "fff269b875d14dd6fbd1b90050739679f4bc2061"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Tue Apr 29 18:40:53 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Tue Apr 29 19:27:20 2025 -0700"
      },
      "message": "ssh_theather: use ~/.config/sketch not ~/.sketch\n"
    },
    {
      "commit": "0cbd976940708c94eb8b644b14bfda3f19087997",
      "tree": "c52d063201ece6aa1b9691e2dac5a5d31ceab1a3",
      "parents": [
        "33f717263a1b7172ed8e0182481adb1b1ededb7a"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Fri Apr 25 16:30:20 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Fri Apr 25 16:30:20 2025 -0700"
      },
      "message": "rename a file that was driving me crazy\n"
    },
    {
      "commit": "2cba69514b40c49a7a71102962b917c8a9eb4194",
      "tree": "b623b2f6dca84a875a40758361617111b724edda",
      "parents": [
        "6f2bf8aa1d1105d292b8fb7961fc30b41d15cc79"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Fri Apr 25 20:32:10 2025 +0000"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Fri Apr 25 16:19:49 2025 -0700"
      },
      "message": "Add unit tests for dockerimg/sshtheater.go with refactoring for testability\n\nRefactored the code to use dependency injection to make it more testable, including:\n- Created FileSystem and KeyGenerator interfaces\n- Added RealFileSystem and RealKeyGenerator implementations\n- Refactored SSHTheater to use these interfaces\n- Added comprehensive unit tests for all functionality\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\n"
    },
    {
      "commit": "6f2bf8aa1d1105d292b8fb7961fc30b41d15cc79",
      "tree": "87b89de8e93958c878f92bafeb32e67d0f407134",
      "parents": [
        "5c70bfe5601e9919e598025ac56984e1b2e21040"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip.zeyliger@gmail.com",
        "time": "Fri Apr 25 15:29:46 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip.zeyliger@gmail.com",
        "time": "Fri Apr 25 15:32:56 2025 -0700"
      },
      "message": "sketch: fix double space in SSH warning\n"
    },
    {
      "commit": "f5e28f67b3f569c73b1b020b5783872371bd0c3c",
      "tree": "174b42b12dadc6bbd96257aa0f7cdde722d09609",
      "parents": [
        "faa39bec76f463c0e2c9b06f567a596d47af0d50"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Fri Apr 25 10:48:00 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Fri Apr 25 10:48:00 2025 -0700"
      },
      "message": "sshtheater: check for Include line in ~/.ssh/config\n"
    },
    {
      "commit": "7d5a6301a256823ab4b26a68dbd166f0d0737409",
      "tree": "99abfc40814eb152f9e3442d7f75ef8a5e306002",
      "parents": [
        "4854c6535a320f6fbfe8baee02af509367e4236c"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu Apr 24 21:27:51 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu Apr 24 21:29:46 2025 -0700"
      },
      "message": "SSHTheater: fix known_hosts update issue\n"
    },
    {
      "commit": "4854c6535a320f6fbfe8baee02af509367e4236c",
      "tree": "6ef13e82fb6597c443b31c350af8e390a8d0062f",
      "parents": [
        "53786efbbbb2fbc3edb91ba639894e713b293140"
      ],
      "author": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu Apr 24 18:37:02 2025 -0700"
      },
      "committer": {
        "name": "Sean McCullough",
        "email": "banksean@gmail.com",
        "time": "Thu Apr 24 20:49:55 2025 -0700"
      },
      "message": "dockerimg: +SSHTheater, auto-configures local ssh\n\n- removes the old cli flags for pointing sketch at existing ssh key files\n- generates key pairs for both the container ssh server and the user if\n  these don\u0027t already exist in ~/.sketch/\n- automatically edits ~/.sketch/known_hosts and ~/.sketch/ssh_config to\n  add entries when you start a sketch container and remove them when you\u0027re\n  done\n- does not make any edits to default ~/.ssh/config files, so you\u0027ll have\n  to manually add line to you default ssh config file like:\n  `Include HOME_DIR/.sketch/ssh_config`\n  in order to have your ssh tools pick up what sketch is putting down.\n"
    }
  ]
}
