)]}'
{
  "commit": "8bb1e2e842f6aee8a83ef25b1da21431aebef1ac",
  "tree": "0184d8b1eb3828cf23abaf5fbb2fa25ea104d8cc",
  "parents": [
    "6987932bb9222b19164ec873610ecc944f34a579"
  ],
  "author": {
    "name": "Robert Findley",
    "email": "rfindley@google.com",
    "time": "Tue Nov 16 11:11:47 2021 -0500"
  },
  "committer": {
    "name": "Robert Findley",
    "email": "rfindley@google.com",
    "time": "Fri Nov 19 20:36:05 2021 +0000"
  },
  "message": "examples: derive examples from the examples directory\n\nWith the gotip playground we may want to swap out examples with greater\nfrequency, to demonstrate new features at Go tip. Make this easier by\nderiving examples directly from the examples directory via a new\nexamplesHandler type. This also enables having dynamic content for\nhello.txt, which depends on the value of runtime.GoVersion().\n\nThis will impact the non-tip playground in a few ways:\n- We will now pre-load examples at server start up.\n- Examples will be sorted by their title (with the exception of Hello,\n  playground, which is always first).\n- We will set a CORS header for examples. This was added for consistency\n  with other handlers, and seems harmless.\n\nGeneralize TestShare to TestServer, and use it to test the examples\nhandler.\n\nAdd a single gotip example demonstrating generics.\n\nUpdates golang/go#48517\n\nChange-Id: I7ab58eb391829d581f7aeae95c291666be5718b9\nReviewed-on: https://go-review.googlesource.com/c/playground/+/364374\nTrust: Robert Findley \u003crfindley@google.com\u003e\nRun-TryBot: Robert Findley \u003crfindley@google.com\u003e\nTryBot-Result: Go Bot \u003cgobot@golang.org\u003e\nReviewed-by: Alexander Rakoczy \u003calex@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3d63848c793f923960bb43f022c02eb424f6c82a",
      "old_mode": 33188,
      "old_path": "edit.go",
      "new_id": "500d664fe58c43053884a5df37906ad43270c267",
      "new_mode": 33188,
      "new_path": "edit.go"
    },
    {
      "type": "modify",
      "old_id": "bf5e4df417cbe03df802d31708415286b38caba8",
      "old_mode": 33188,
      "old_path": "edit.html",
      "new_id": "1045005edfc667f1170e6ee01a0155c5d1961b0b",
      "new_mode": 33188,
      "new_path": "edit.html"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d834d1f987462c6c081ee1f46728c62751a08264",
      "new_mode": 33188,
      "new_path": "examples.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1021ad30ae77890ab4f52046f2dd7724417e99fb",
      "new_mode": 33188,
      "new_path": "examples/README.md"
    },
    {
      "type": "modify",
      "old_id": "c5381d71e8b5426622b03c6e99a13bd81093a90d",
      "old_mode": 33188,
      "old_path": "examples/clear.txt",
      "new_id": "26c767a62a244102484d7479b15fc490e2816076",
      "new_mode": 33188,
      "new_path": "examples/clear.txt"
    },
    {
      "type": "delete",
      "old_id": "8fd43ed1e52b4290a6e633983e331a371b34331a",
      "old_mode": 33188,
      "old_path": "examples/hello.txt",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "7c8f65136e598f78ca8c9cec8f5405cca831c90a",
      "old_mode": 33188,
      "old_path": "examples/http.txt",
      "new_id": "d35788a245bf29593e9e33d1bcea023ae985c23d",
      "new_mode": 33188,
      "new_path": "examples/http.txt"
    },
    {
      "type": "modify",
      "old_id": "4180a4500ffe90b530f498d7edba5df0dd857d21",
      "old_mode": 33188,
      "old_path": "examples/image.txt",
      "new_id": "01c6cc1b2dcd77476215e7ee76988e9dfe697991",
      "new_mode": 33188,
      "new_path": "examples/image.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c719788ea5524e18a2eb875eee183f396fe4099",
      "new_mode": 33188,
      "new_path": "examples/min.gotip.txt"
    },
    {
      "type": "modify",
      "old_id": "ad41446f27338209f34a4d71a9174744fbfc83bd",
      "old_mode": 33188,
      "old_path": "examples/multi.txt",
      "new_id": "0c2800d929c4d69bb31ed0dee01b2fe32865623a",
      "new_mode": 33188,
      "new_path": "examples/multi.txt"
    },
    {
      "type": "modify",
      "old_id": "d68a3d8e8b49c7f8d1aec73d4e46e528504db813",
      "old_mode": 33188,
      "old_path": "examples/sleep.txt",
      "new_id": "6377ab1e183da156f17c0c21da1df6ca2d6e997a",
      "new_mode": 33188,
      "new_path": "examples/sleep.txt"
    },
    {
      "type": "modify",
      "old_id": "4bf86e9004e2e17211f22b656b405cbc94195824",
      "old_mode": 33188,
      "old_path": "examples/test.txt",
      "new_id": "c31fcda1e1a2b246aab40cfd0c917dcab077b2e1",
      "new_mode": 33188,
      "new_path": "examples/test.txt"
    },
    {
      "type": "modify",
      "old_id": "1d6c9ac5ff8f29791a507288090ff79944b25d50",
      "old_mode": 33188,
      "old_path": "main.go",
      "new_id": "3adf653e27ca425e350dc7011ae4a9026a56dc5c",
      "new_mode": 33188,
      "new_path": "main.go"
    },
    {
      "type": "modify",
      "old_id": "ff03baae806854f152a484057d9ffe0cab815e5a",
      "old_mode": 33188,
      "old_path": "server.go",
      "new_id": "21a92702d62a4c107d814c83a6a23802d0b54190",
      "new_mode": 33188,
      "new_path": "server.go"
    },
    {
      "type": "modify",
      "old_id": "ae3a9cd2a5e8d9d79287a99958018cc8331ac9af",
      "old_mode": 33188,
      "old_path": "server_test.go",
      "new_id": "1fb178cfaef6fcf7ed494f5fe8a7accc2495c2c7",
      "new_mode": 33188,
      "new_path": "server_test.go"
    }
  ]
}
