{"id": 753513062, "node_id": "PR_kwDOBm6k_c4s6bJm", "number": 1481, "state": "closed", "locked": 0, "title": "Fix compatibility with Python 3.10", "user": {"value": 9599, "label": "simonw"}, "body": null, "created_at": "2021-10-07T20:34:23Z", "updated_at": "2021-10-24T22:19:55Z", "closed_at": "2021-10-24T22:19:54Z", "merged_at": "2021-10-24T22:19:54Z", "merge_commit_sha": "96a823f2834a262ae97a90ebfb6847f14763c415", "assignee": null, "milestone": null, "draft": 0, "head": "50005bd2d36219c3ae8b6220d38df918459a1812", "base": "63886178a649586b403966a27a45881709d2b868", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1481", "merged_by": null, "auto_merge": null} {"id": 757797315, "node_id": "PR_kwDOCGYnMM4tKxHD", "number": 330, "state": "closed", "locked": 0, "title": "Test against Python 3.10", "user": {"value": 9599, "label": "simonw"}, "body": null, "created_at": "2021-10-13T21:50:22Z", "updated_at": "2021-11-15T02:59:29Z", "closed_at": "2021-10-13T22:25:05Z", "merged_at": "2021-10-13T22:25:05Z", "merge_commit_sha": "fda4dad23a0494890267fbe8baf179e2b56ee914", "assignee": null, "milestone": null, "draft": 0, "head": "fc3de90963b6b097826d36f6a24c46267659dcf2", "base": "718a8f61bcaed39c04d5d223104056213f8c8516", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/330", "merged_by": null, "auto_merge": null} {"id": 153432045, "node_id": "MDExOlB1bGxSZXF1ZXN0MTUzNDMyMDQ1", "number": 118, "state": "closed", "locked": 0, "title": "Foreign key information on row and table pages", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2017-11-18T03:13:27Z", "updated_at": "2017-11-18T03:15:57Z", "closed_at": "2017-11-18T03:15:50Z", "merged_at": "2017-11-18T03:15:50Z", "merge_commit_sha": "1b04662585ea1539014bfbd616a8112b650d5699", "assignee": null, "milestone": null, "draft": 0, "head": "2fa60bc5e3c9d75c19e21a2384f52b58e1872fa8", "base": "6d39429daa4655e3cf7a6a7671493292a20a30a1", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/118", "merged_by": null, "auto_merge": null} {"id": 157365811, "node_id": "MDExOlB1bGxSZXF1ZXN0MTU3MzY1ODEx", "number": 168, "state": "closed", "locked": 0, "title": "Upgrade to Sanic 0.7.0", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2017-12-09T01:25:08Z", "updated_at": "2017-12-09T03:00:34Z", "closed_at": "2017-12-09T03:00:34Z", "merged_at": "2017-12-09T03:00:34Z", "merge_commit_sha": "446f4b832272b2286f6f65af19714eb64afb7aa6", "assignee": null, "milestone": null, "draft": 0, "head": "d9e13a5cc2b77637a6cdd8bd21b9b8fc1350051a", "base": "61e3c5a1e904a6e1cbee86ba1494b5cb4b5820cf", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/168", "merged_by": null, "auto_merge": null} {"id": 182357613, "node_id": "MDExOlB1bGxSZXF1ZXN0MTgyMzU3NjEz", "number": 222, "state": "closed", "locked": 0, "title": "Fix for plugins in Python 3.5", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2018-04-18T03:21:01Z", "updated_at": "2018-04-18T04:26:50Z", "closed_at": "2018-04-18T03:24:21Z", "merged_at": "2018-04-18T03:24:21Z", "merge_commit_sha": "4be6deb94776744071311777f0b18efb993c0cfa", "assignee": null, "milestone": null, "draft": 0, "head": "420cdcb88ee41c15a90fce30fdec5832c03295bd", "base": "1c36d07dd432b9960f4f2d096739460b4fcf8877", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/222", "merged_by": null, "auto_merge": null} {"id": 185307407, "node_id": "MDExOlB1bGxSZXF1ZXN0MTg1MzA3NDA3", "number": 246, "state": "closed", "locked": 0, "title": "?_shape=array and _timelimit=", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2018-05-02T00:18:54Z", "updated_at": "2018-05-02T00:20:41Z", "closed_at": "2018-05-02T00:20:40Z", "merged_at": "2018-05-02T00:20:40Z", "merge_commit_sha": "690736436bac599ca042d1caa465c6d66d2651f9", "assignee": null, "milestone": null, "draft": 0, "head": "3807d93b98573e142858c5871b8b4aadda71d28f", "base": "aa954382c3776d596f459897b0d984161293529d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/246", "merged_by": null, "auto_merge": null} {"id": 206863803, "node_id": "MDExOlB1bGxSZXF1ZXN0MjA2ODYzODAz", "number": 358, "state": "closed", "locked": 0, "title": "Bump versions of pytest, pluggy and beautifulsoup4", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2018-08-08T00:44:38Z", "updated_at": "2018-08-08T01:11:13Z", "closed_at": "2018-08-08T01:11:13Z", "merged_at": "2018-08-08T01:11:13Z", "merge_commit_sha": "e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5", "assignee": null, "milestone": null, "draft": 0, "head": "848ed0e0420d2e8c95a96b4cf73082da4c65d8f6", "base": "fe5b6ea95a973534fe8a44907c0ea2449aae7602", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/358", "merged_by": null, "auto_merge": null} {"id": 208719043, "node_id": "MDExOlB1bGxSZXF1ZXN0MjA4NzE5MDQz", "number": 361, "state": "closed", "locked": 0, "title": " Import pysqlite3 if available, closes #360 ", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2018-08-16T00:52:21Z", "updated_at": "2018-08-16T00:58:57Z", "closed_at": "2018-08-16T00:58:57Z", "merged_at": "2018-08-16T00:58:57Z", "merge_commit_sha": "aae49fef3b75848628d824077ec063834e3e5167", "assignee": null, "milestone": null, "draft": 0, "head": "da41daa168af8f29a1beb5278aed833cf3dc48ce", "base": "e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/361", "merged_by": null, "auto_merge": null} {"id": 232172106, "node_id": "MDExOlB1bGxSZXF1ZXN0MjMyMTcyMTA2", "number": 389, "state": "closed", "locked": 0, "title": "Bump dependency versions", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2018-11-20T02:23:12Z", "updated_at": "2019-11-13T19:13:41Z", "closed_at": "2019-11-13T19:13:41Z", "merged_at": null, "merge_commit_sha": "9194c0165aef411e0784ba49939b1005306f1f38", "assignee": null, "milestone": null, "draft": 0, "head": "f8349b45916e68d2f89c57694bd0e6afaf1bd508", "base": "5e3a432a0caa23837fa58134f69e2f82e4f632a6", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/389", "merged_by": null, "auto_merge": null} {"id": 241418443, "node_id": "MDExOlB1bGxSZXF1ZXN0MjQxNDE4NDQz", "number": 392, "state": "closed", "locked": 0, "title": "Fix some regex DeprecationWarnings", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2018-12-29T02:10:28Z", "updated_at": "2018-12-29T02:22:28Z", "closed_at": "2018-12-29T02:22:28Z", "merged_at": "2018-12-29T02:22:28Z", "merge_commit_sha": "a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a", "assignee": null, "milestone": null, "draft": 0, "head": "d245982aedaf7c54bf41d60ea7f0e0cf419c2b2f", "base": "eac08f0dfc61a99e8887442fc247656d419c76f8", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/392", "merged_by": null, "auto_merge": null} {"id": 247576942, "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ3NTc2OTQy", "number": 4, "state": "closed", "locked": 0, "title": "Fts5", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-01-25T06:54:05Z", "updated_at": "2019-01-25T06:54:33Z", "closed_at": "2019-01-25T06:54:33Z", "merged_at": "2019-01-25T06:54:33Z", "merge_commit_sha": "42b2b4b785e3163371e92a9cc085bc47e7c83107", "assignee": null, "milestone": null, "draft": 0, "head": "7f205d2308443557bcaec497b3d0badc0dc26f06", "base": "ccb2a1e729780689188005a52c362b7e963f71e8", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/4", "merged_by": null, "auto_merge": null} {"id": 247861419, "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ3ODYxNDE5", "number": 5, "state": "closed", "locked": 0, "title": "Run Travis tests against Python 3.8-dev", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-01-26T02:30:55Z", "updated_at": "2019-01-26T02:37:54Z", "closed_at": "2019-01-26T02:37:54Z", "merged_at": "2019-01-26T02:37:54Z", "merge_commit_sha": "3a944d0c077c203277f13dd69387eb84b5c88d3e", "assignee": null, "milestone": null, "draft": 0, "head": "b2f81e86074526d6e4dc9e39e791deff195669de", "base": "9a4d1ff0a268c7df7839389acd92d48752d24b95", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/5", "merged_by": null, "auto_merge": null} {"id": 255658112, "node_id": "MDExOlB1bGxSZXF1ZXN0MjU1NjU4MTEy", "number": 12, "state": "closed", "locked": 0, "title": "Support for numpy types, closes #11", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-02-24T03:57:32Z", "updated_at": "2019-02-24T04:02:20Z", "closed_at": "2019-02-24T04:02:20Z", "merged_at": "2019-02-24T04:02:20Z", "merge_commit_sha": "e615d22c5564ea1f32abb086088b2700110be10a", "assignee": null, "milestone": null, "draft": 0, "head": "7c20e60685088d6da0739749305215790ca8375a", "base": "c5068a0972651b3e359ebc2d6c1486b8b7d2c242", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/12", "merged_by": null, "auto_merge": null} {"id": 261418285, "node_id": "MDExOlB1bGxSZXF1ZXN0MjYxNDE4Mjg1", "number": 416, "state": "closed", "locked": 0, "title": "URL hashing now optional: turn on with --config hash_urls:1 (#418)", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-03-15T04:26:06Z", "updated_at": "2019-03-17T22:55:04Z", "closed_at": "2019-03-17T22:55:04Z", "merged_at": "2019-03-17T22:55:04Z", "merge_commit_sha": "6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee", "assignee": null, "milestone": null, "draft": 0, "head": "0d02a99c9665669540aebff981246d8c743072b3", "base": "afe9aa3ae03c485c5d6652741438d09445a486c1", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/416", "merged_by": null, "auto_merge": null} {"id": 270191084, "node_id": "MDExOlB1bGxSZXF1ZXN0MjcwMTkxMDg0", "number": 430, "state": "closed", "locked": 0, "title": "?_where= parameter on table views, closes #429", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-04-13T01:15:09Z", "updated_at": "2019-04-13T01:37:23Z", "closed_at": "2019-04-13T01:37:23Z", "merged_at": "2019-04-13T01:37:23Z", "merge_commit_sha": "bc6a9b45646610f362b4287bc4110440991aa4d6", "assignee": null, "milestone": null, "draft": 0, "head": "3ee087c7b60da7ec3e5d2f73611fc6ea99ff82fc", "base": "e11cb4c66442abca2a6b6159521a6cf4da8739c1", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/430", "merged_by": null, "auto_merge": null} {"id": 275801463, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjc1ODAxNDYz", "number": 447, "state": "closed", "locked": 0, "title": "Use dist: xenial and python: 3.7 on Travis", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-05-03T18:07:07Z", "updated_at": "2019-05-03T18:17:05Z", "closed_at": "2019-05-03T18:16:53Z", "merged_at": "2019-05-03T18:16:53Z", "merge_commit_sha": "553314dcd699a84aa7cc806377150ca0d57a6024", "assignee": null, "milestone": null, "draft": 0, "head": "cd22e389d09b4fd5ed28205ba38a20faf1ed14f1", "base": "01b3de5b66742f0f661183e9e2ef66be3600e831", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/447", "merged_by": null, "auto_merge": null} {"id": 284390197, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjg0MzkwMTk3", "number": 497, "state": "closed", "locked": 0, "title": "Upgrade pytest to 4.6.1", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-06-03T01:45:34Z", "updated_at": "2019-06-03T02:06:32Z", "closed_at": "2019-06-03T02:06:27Z", "merged_at": "2019-06-03T02:06:27Z", "merge_commit_sha": "5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945", "assignee": null, "milestone": null, "draft": 0, "head": "bf2ab0306e6d3ce7524fecf015e2cec7ae45e994", "base": "803f750309bf0cd5b7501228c1efcf9a35686d74", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/497", "merged_by": null, "auto_merge": null} {"id": 285698310, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjg1Njk4MzEw", "number": 501, "state": "closed", "locked": 0, "title": "Test against Python 3.8-dev using Travis", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-06-06T08:37:53Z", "updated_at": "2019-11-11T03:23:29Z", "closed_at": "2019-11-11T03:23:29Z", "merged_at": null, "merge_commit_sha": "1aac0cf0ab962060dd5cff19b8b179bb7fa0f00b", "assignee": null, "milestone": null, "draft": 0, "head": "a5defb684fcc734f6325ca08beef9f49c3e7a298", "base": "5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/501", "merged_by": null, "auto_merge": null} {"id": 293992382, "node_id": "MDExOlB1bGxSZXF1ZXN0MjkzOTkyMzgy", "number": 535, "state": "closed", "locked": 0, "title": "Added asgi_wrapper plugin hook, closes #520", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-07-03T03:58:00Z", "updated_at": "2019-07-03T04:06:26Z", "closed_at": "2019-07-03T04:06:26Z", "merged_at": "2019-07-03T04:06:26Z", "merge_commit_sha": "4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3", "assignee": null, "milestone": null, "draft": 0, "head": "93bfa26bfd25a3cc911d637596e364d3474325bd", "base": "b9ede4c1898616512b5d204f9c941deff473cbe4", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/535", "merged_by": null, "auto_merge": null} {"id": 293994443, "node_id": "MDExOlB1bGxSZXF1ZXN0MjkzOTk0NDQz", "number": 536, "state": "closed", "locked": 0, "title": "Switch to ~= dependencies, closes #532", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-07-03T04:12:16Z", "updated_at": "2019-07-03T04:32:55Z", "closed_at": "2019-07-03T04:32:55Z", "merged_at": "2019-07-03T04:32:55Z", "merge_commit_sha": "f0d32da0a9af87bcb15e34e35424f0c0053be83a", "assignee": null, "milestone": null, "draft": 0, "head": "391d109dc3f9230dc4ee4afd20041e480e90e739", "base": "4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/536", "merged_by": null, "auto_merge": null} {"id": 300286535, "node_id": "MDExOlB1bGxSZXF1ZXN0MzAwMjg2NTM1", "number": 45, "state": "closed", "locked": 0, "title": "Implemented table.lookup(...), closes #44", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-07-23T13:03:30Z", "updated_at": "2019-07-23T13:07:00Z", "closed_at": "2019-07-23T13:07:00Z", "merged_at": "2019-07-23T13:07:00Z", "merge_commit_sha": "580502431614d3653c93249988290265f3163d4b", "assignee": null, "milestone": null, "draft": 0, "head": "c0852ce018425450d6c040040f32729d41ff635c", "base": "f3a4c3d3ee6475a6caf3c9606656dbaf1df020b7", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/45", "merged_by": null, "auto_merge": null} {"id": 301824097, "node_id": "MDExOlB1bGxSZXF1ZXN0MzAxODI0MDk3", "number": 51, "state": "closed", "locked": 0, "title": "Fix for too many SQL variables, closes #50", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-07-28T11:30:30Z", "updated_at": "2019-07-28T11:59:32Z", "closed_at": "2019-07-28T11:59:32Z", "merged_at": "2019-07-28T11:59:32Z", "merge_commit_sha": "9cb045284ede8009c12abdb1755b5b20f6ccff5f", "assignee": null, "milestone": null, "draft": 0, "head": "0c1b8b7f96be874bb63801f69323960f277aa49a", "base": "9b7be79c86b4283f24a64f62257c918f12542997", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/51", "merged_by": null, "auto_merge": null} {"id": 327051673, "node_id": "MDExOlB1bGxSZXF1ZXN0MzI3MDUxNjcz", "number": 15, "state": "closed", "locked": 0, "title": "twitter-to-sqlite import command, refs #4", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-10-11T06:37:14Z", "updated_at": "2019-10-11T06:45:01Z", "closed_at": "2019-10-11T06:45:01Z", "merged_at": "2019-10-11T06:45:01Z", "merge_commit_sha": "2019ee908731054c6eaa3d5123dfbdf7d2d70fc4", "assignee": null, "milestone": null, "draft": 0, "head": "df1d85897118310a2d3c1b9e5aad108165302cf2", "base": "436a170d74ec70903d1b4ca430c2c6b6435cdfcc", "author_association": "MEMBER", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "url": "https://github.com/dogsheep/twitter-to-sqlite/pull/15", "merged_by": null, "auto_merge": null} {"id": 334448258, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM0NDQ4MjU4", "number": 609, "state": "closed", "locked": 0, "title": "Update to latest black", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-10-30T18:42:35Z", "updated_at": "2019-10-30T18:49:01Z", "closed_at": "2019-10-30T18:49:01Z", "merged_at": "2019-10-30T18:49:01Z", "merge_commit_sha": "5dd4d2b2d3abcfd507a6df47e7c2fbad3c552fd8", "assignee": null, "milestone": null, "draft": 0, "head": "6f57e5e77bac29ac88d51271fd0c785859a820ce", "base": "f4c0830529a9513a83437a9e1550bbe27ebc5c64", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/609", "merged_by": null, "auto_merge": null} {"id": 337847573, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM3ODQ3NTcz", "number": 64, "state": "closed", "locked": 0, "title": "test_insert_upsert_all_empty_list", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-11-07T04:24:45Z", "updated_at": "2019-11-07T04:32:38Z", "closed_at": "2019-11-07T04:32:38Z", "merged_at": "2019-11-07T04:32:38Z", "merge_commit_sha": "8dab9fd1ccf571e188eec9ccf606a0c50fccf200", "assignee": null, "milestone": null, "draft": 0, "head": "8daea7f1265ddcce67d28258068a25666954000f", "base": "a0a65f9a6405079b01aefdbf4b5f507bc758567a", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/64", "merged_by": null, "auto_merge": null} {"id": 337853394, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM3ODUzMzk0", "number": 65, "state": "closed", "locked": 0, "title": "Release 1.12.1", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-11-07T04:51:29Z", "updated_at": "2019-11-07T04:58:48Z", "closed_at": "2019-11-07T04:58:47Z", "merged_at": "2019-11-07T04:58:47Z", "merge_commit_sha": "0a0cec3cf27861455e8cd1c4d84937825a18bb30", "assignee": null, "milestone": null, "draft": 0, "head": "28f8a238ab8fc2a70ee81bd73de6c167d9db9cdf", "base": "8dab9fd1ccf571e188eec9ccf606a0c50fccf200", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/65", "merged_by": null, "auto_merge": null} {"id": 339244888, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM5MjQ0ODg4", "number": 624, "state": "closed", "locked": 0, "title": "Bump pint to 0.9", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-11-11T04:07:07Z", "updated_at": "2019-11-11T04:19:02Z", "closed_at": "2019-11-11T04:19:02Z", "merged_at": "2019-11-11T04:19:02Z", "merge_commit_sha": "42ee3e16a9ba7cc513b8da944cc1609a5407cf42", "assignee": null, "milestone": null, "draft": 0, "head": "ed17117a2ad675cbf2430f28069bb1854846a6f0", "base": "1c063fae9dba70f70244db010d55a18846640f07", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/624", "merged_by": null, "auto_merge": null} {"id": 346264926, "node_id": "MDExOlB1bGxSZXF1ZXN0MzQ2MjY0OTI2", "number": 67, "state": "closed", "locked": 0, "title": "Run tests against 3.5 too", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-11-27T14:20:35Z", "updated_at": "2019-12-31T01:29:44Z", "closed_at": "2019-12-31T01:29:43Z", "merged_at": null, "merge_commit_sha": "88375b0bc055067b996584f06ed85a9a90c5aa1a", "assignee": null, "milestone": null, "draft": 0, "head": "4c6e5a4486e0e17555774eb3279142234a8b4abc", "base": "0a0cec3cf27861455e8cd1c4d84937825a18bb30", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/67", "merged_by": null, "auto_merge": null} {"id": 368734500, "node_id": "MDExOlB1bGxSZXF1ZXN0MzY4NzM0NTAw", "number": 663, "state": "closed", "locked": 0, "title": "-p argument for datasette package, plus tests - refs #661", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-01-29T19:47:49Z", "updated_at": "2020-01-29T22:46:43Z", "closed_at": "2020-01-29T22:46:43Z", "merged_at": "2020-01-29T22:46:43Z", "merge_commit_sha": "67fc9c5720ed1fcd62b116481f70d4e80b403a22", "assignee": null, "milestone": null, "draft": 0, "head": "8adfc9db7f15e36fed677be4a9c833ff2cdec0bc", "base": "34d77d780f68b778fd9d6ebbaf69f250436f055f", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/663", "merged_by": null, "auto_merge": null} {"id": 369348084, "node_id": "MDExOlB1bGxSZXF1ZXN0MzY5MzQ4MDg0", "number": 78, "state": "closed", "locked": 0, "title": "New conversions= feature, refs #77", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-01-31T00:02:33Z", "updated_at": "2020-09-22T07:48:29Z", "closed_at": "2020-01-31T00:24:31Z", "merged_at": "2020-01-31T00:24:31Z", "merge_commit_sha": "e8b2b7383bd94659d3b7a857a1414328bc48bc19", "assignee": null, "milestone": null, "draft": 0, "head": "58190d67821aaa57c8ca0320a08e3691d6e27344", "base": "59a2e8ebdcbde7e6fb091b0556713ca5a20ea4e7", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/78", "merged_by": null, "auto_merge": null} {"id": 372273608, "node_id": "MDExOlB1bGxSZXF1ZXN0MzcyMjczNjA4", "number": 33, "state": "closed", "locked": 0, "title": "Upgrade to sqlite-utils 2.2.1", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-02-07T07:32:12Z", "updated_at": "2020-03-20T19:21:42Z", "closed_at": "2020-03-20T19:21:41Z", "merged_at": null, "merge_commit_sha": "5338f6baab3ec1424431133968d8b64a656ce4c4", "assignee": null, "milestone": null, "draft": 0, "head": "08f51271d6309aad698b9e8a7587fcebbbd67781", "base": "35c18a09fa664324dcb75e5e58ccb90644456d02", "author_association": "MEMBER", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "url": "https://github.com/dogsheep/twitter-to-sqlite/pull/33", "merged_by": null, "auto_merge": null} {"id": 468377212, "node_id": "MDExOlB1bGxSZXF1ZXN0NDY4Mzc3MjEy", "number": 937, "state": "closed", "locked": 0, "title": "Docs now live at docs.datasette.io", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-08-15T23:53:52Z", "updated_at": "2020-08-15T23:57:06Z", "closed_at": "2020-08-15T23:57:05Z", "merged_at": "2020-08-15T23:57:05Z", "merge_commit_sha": "41ddc197561ac2d2a1bb988956c301a523c6ca35", "assignee": null, "milestone": null, "draft": 0, "head": "ff2605af65e023564cd7b57382b116e94b9d4f16", "base": "af12f45c2b0e4782ca92c2d00481dc47ccb7a046", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/937", "merged_by": null, "auto_merge": null} {"id": 498104830, "node_id": "MDExOlB1bGxSZXF1ZXN0NDk4MTA0ODMw", "number": 994, "state": "closed", "locked": 0, "title": "Run tests against Python 3.9", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-10-05T20:40:13Z", "updated_at": "2020-10-09T16:22:51Z", "closed_at": "2020-10-09T16:22:50Z", "merged_at": "2020-10-09T16:22:50Z", "merge_commit_sha": "6e091b14b651d67e0ff41a353d36bbeb1d8ba235", "assignee": null, "milestone": null, "draft": 0, "head": "ecba5d257ef4218a98b5903d856a4d7c0382f43d", "base": "e807c4eac0e85ae15e013379b0dde1d797f1377d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/994", "merged_by": null, "auto_merge": null} {"id": 499603359, "node_id": "MDExOlB1bGxSZXF1ZXN0NDk5NjAzMzU5", "number": 184, "state": "closed", "locked": 0, "title": "Test against Python 3.9", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-10-08T01:37:05Z", "updated_at": "2020-10-08T01:44:06Z", "closed_at": "2020-10-08T01:44:06Z", "merged_at": "2020-10-08T01:44:06Z", "merge_commit_sha": "8e91de8e4edf6c8abeeccdf084b8870fff40a51a", "assignee": null, "milestone": null, "draft": 0, "head": "975c05b6dde9feebcdecabc047d47122ebcfdf84", "base": "7f4fe9190c1df7f0e72f9d7040327a43cf252c48", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/184", "merged_by": null, "auto_merge": null} {"id": 511005542, "node_id": "MDExOlB1bGxSZXF1ZXN0NTExMDA1NTQy", "number": 1056, "state": "closed", "locked": 0, "title": "Radical new colour scheme and base styles, courtesy of @natbat", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-10-27T19:31:48Z", "updated_at": "2020-10-27T19:39:57Z", "closed_at": "2020-10-27T19:39:56Z", "merged_at": "2020-10-27T19:39:56Z", "merge_commit_sha": "e5f5034bcdc71e4bc62a6a155ca60eb41910c335", "assignee": null, "milestone": {"value": 6026070, "label": "0.51"}, "draft": 0, "head": "a7b2aabd5148c0ee382b583de68a4f0538f7dfb1", "base": "26bb4a268127da2c38f4241abe45444b2a6f7874", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1056", "merged_by": null, "auto_merge": null} {"id": 572209243, "node_id": "MDExOlB1bGxSZXF1ZXN0NTcyMjA5MjQz", "number": 1222, "state": "closed", "locked": 0, "title": "--ssl-keyfile and --ssl-certfile, refs #1221", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2021-02-12T00:45:58Z", "updated_at": "2021-02-12T00:52:18Z", "closed_at": "2021-02-12T00:52:17Z", "merged_at": "2021-02-12T00:52:17Z", "merge_commit_sha": "eda652cf6ee28a0babfb30ce3834512e9e33fb8e", "assignee": null, "milestone": null, "draft": 0, "head": "8ec72ea3e3e0a9876d5e61e4a2260224f16db2e3", "base": "aa1fe0692c2abb901216738bfb35f9fcc5090e7d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1222", "merged_by": null, "auto_merge": null} {"id": 677554929, "node_id": "MDExOlB1bGxSZXF1ZXN0Njc3NTU0OTI5", "number": 293, "state": "closed", "locked": 0, "title": "Test against Python 3.10-dev", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2021-06-25T01:40:39Z", "updated_at": "2021-10-13T21:49:33Z", "closed_at": "2021-10-13T21:49:33Z", "merged_at": null, "merge_commit_sha": "0f64d20b044ecb86d9e4e5843f9590006d2f39c2", "assignee": null, "milestone": null, "draft": 0, "head": "ae0f46a78958c0118e98c2ab18bd1b57a0478326", "base": "747be6057d09a4e5d9d726e29d5cf99b10c59dea", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/293", "merged_by": null, "auto_merge": null} {"id": 691707409, "node_id": "MDExOlB1bGxSZXF1ZXN0NjkxNzA3NDA5", "number": 1397, "state": "closed", "locked": 0, "title": "Fix for race condition in refresh_schemas(), closes #1231", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2021-07-16T19:44:43Z", "updated_at": "2021-07-16T19:45:00Z", "closed_at": "2021-07-16T19:44:58Z", "merged_at": "2021-07-16T19:44:58Z", "merge_commit_sha": "c00f29affcafce8314366852ba1a0f5a7dd25690", "assignee": null, "milestone": null, "draft": 0, "head": "bf2453ab7cb876c91edab3df59b7f398df2f9727", "base": "dd5ee8e66882c94343cd3f71920878c6cfd0da41", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1397", "merged_by": null, "auto_merge": null} {"id": 187668890, "node_id": "MDExOlB1bGxSZXF1ZXN0MTg3NjY4ODkw", "number": 257, "state": "closed", "locked": 0, "title": "Refactor views", "user": {"value": 9599, "label": "simonw"}, "body": "* Split out view classes from main `app.py`\r\n* Run [black](https://github.com/ambv/black) against resulting code to apply opinionated source code formatting\r\n* Run [isort](https://github.com/timothycrosley/isort) to re-order my imports\r\n\r\nRefs #256 ", "created_at": "2018-05-13T13:00:50Z", "updated_at": "2018-05-14T03:04:25Z", "closed_at": "2018-05-14T03:04:24Z", "merged_at": "2018-05-14T03:04:24Z", "merge_commit_sha": "2b79f2bdeb1efa86e0756e741292d625f91cb93d", "assignee": null, "milestone": null, "draft": 0, "head": "0e2b41f3fa38456af32548c536f955c48c7637e8", "base": "4301a8f3ac69f2f54916e73cc90fcf216a9a3746", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/257", "merged_by": null, "auto_merge": null} {"id": 1496106142, "node_id": "PR_kwDOBm6k_c5ZLMSe", "number": 2165, "state": "closed", "locked": 0, "title": "DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins", "user": {"value": 9599, "label": "simonw"}, "body": "- #2164\r\n\r\nTODO:\r\n\r\n- [x] Automated tests\r\n- [ ] Documentation\r\n- [x] Make sure `DATASETTE_LOAD_PLUGINS=''` works for loading zero plugins", "created_at": "2023-08-30T20:33:30Z", "updated_at": "2023-08-30T22:12:25Z", "closed_at": "2023-08-30T22:12:25Z", "merged_at": "2023-08-30T22:12:25Z", "merge_commit_sha": "6bfe104d47b888c70bfb7781f8f48ff11452b2b5", "assignee": null, "milestone": null, "draft": 0, "head": "6321c9c055a640ed6ea98e231dc5813dcde1f773", "base": "30b28c8367a9c6870386ea10a202705b40862457", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2165", "merged_by": null, "auto_merge": null} {"id": 511868153, "node_id": "MDExOlB1bGxSZXF1ZXN0NTExODY4MTUz", "number": 1060, "state": "closed", "locked": 0, "title": "New explicit versioning mechanism", "user": {"value": 9599, "label": "simonw"}, "body": "- Remove all references to versioneer\r\n- Re-implement versioning to use a static string baked into the repo\r\n- Ensure that string is output by `datasette --version` and `/-/versions`\r\n\r\nRefs #1054", "created_at": "2020-10-28T22:14:55Z", "updated_at": "2020-10-29T03:38:17Z", "closed_at": "2020-10-29T03:38:16Z", "merged_at": "2020-10-29T03:38:16Z", "merge_commit_sha": "cefd058c1c216a184bb63c79abba66893977c18e", "assignee": null, "milestone": {"value": 6026070, "label": "0.51"}, "draft": 0, "head": "4725d46780783e9875bde5957f053ba19cf92ff0", "base": "abcf0222496d8148b2e585ffa0ff192270a04b06", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1060", "merged_by": null, "auto_merge": null} {"id": 512545364, "node_id": "MDExOlB1bGxSZXF1ZXN0NTEyNTQ1MzY0", "number": 1061, "state": "closed", "locked": 0, "title": ".blob output renderer", "user": {"value": 9599, "label": "simonw"}, "body": "- [x] Remove the `/-/...blob/...` route I added in #1040 in place of the new `.blob` renderer URLs\r\n- [x] Link to new `.blob` download links on the arbitrary query page (using `_blob_hash=...`) - plus tests for this\r\n\r\nCloses #1050, Closes #1051", "created_at": "2020-10-29T20:25:08Z", "updated_at": "2020-10-29T22:01:40Z", "closed_at": "2020-10-29T22:01:39Z", "merged_at": "2020-10-29T22:01:39Z", "merge_commit_sha": "78b3eeaad9189eb737014f53212082684f4bb0d4", "assignee": null, "milestone": {"value": 6026070, "label": "0.51"}, "draft": 0, "head": "1196d084de6a7a6f68c7705a6cc096bb8df132e3", "base": "d6f9ff71378c4eab34dad181c23cfc143a4aef2d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1061", "merged_by": null, "auto_merge": null} {"id": 293962405, "node_id": "MDExOlB1bGxSZXF1ZXN0MjkzOTYyNDA1", "number": 533, "state": "closed", "locked": 0, "title": "Support cleaner custom templates for rows and tables, closes #521", "user": {"value": 9599, "label": "simonw"}, "body": "- [x] Rename `_rows_and_columns.html` to `_table.html`\r\n- [x] Unit test\r\n- [x] Documentation", "created_at": "2019-07-03T00:40:18Z", "updated_at": "2019-07-03T03:23:06Z", "closed_at": "2019-07-03T03:23:06Z", "merged_at": "2019-07-03T03:23:06Z", "merge_commit_sha": "b9ede4c1898616512b5d204f9c941deff473cbe4", "assignee": null, "milestone": null, "draft": 0, "head": "1add905532b7bc4f681318b8f22b9b74cca2b2a0", "base": "76882830548e16905348ee75acb0044cb8e1fd20", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/533", "merged_by": null, "auto_merge": null} {"id": 297459797, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjk3NDU5Nzk3", "number": 40, "state": "closed", "locked": 0, "title": ".get() method plus support for compound primary keys", "user": {"value": 9599, "label": "simonw"}, "body": "- [x] Tests for the `NotFoundError` exception\r\n- [x] Documentation for `.get()` method\r\n- [x] Support `--pk` multiple times to define CLI compound primary keys\r\n- [x] Documentation for compound primary keys", "created_at": "2019-07-15T03:43:13Z", "updated_at": "2019-07-15T04:28:57Z", "closed_at": "2019-07-15T04:28:52Z", "merged_at": "2019-07-15T04:28:52Z", "merge_commit_sha": "c65b67ca46f70e2da46a5b945f4ed358173262e9", "assignee": null, "milestone": null, "draft": 0, "head": "b5a5df6d0ed47f33f6e1b4873948ead9a7c71060", "base": "65b2156d9cc0aa6b5c3dc7a6bd600d98b281a13b", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/40", "merged_by": null, "auto_merge": null} {"id": 303990683, "node_id": "MDExOlB1bGxSZXF1ZXN0MzAzOTkwNjgz", "number": 53, "state": "closed", "locked": 0, "title": "Work in progress: m2m() method for creating many-to-many records", "user": {"value": 9599, "label": "simonw"}, "body": "- [x] `table.insert({\"name\": \"Barry\"}).m2m(\"tags\", lookup={\"tag\": \"Coworker\"})`\r\n- [x] Explicit table name `.m2m(\"humans\", ..., m2m_table=\"relationships\")`\r\n- [x] Automatically use an existing m2m table if a single obvious candidate exists (a table with two foreign keys in the correct directions)\r\n- [x] Require the explicit `m2m_table=` argument if multiple candidates for the m2m table exist\r\n- [x] Documentation\r\n\r\nRefs #23", "created_at": "2019-08-03T10:03:56Z", "updated_at": "2019-08-04T03:38:10Z", "closed_at": "2019-08-04T03:37:33Z", "merged_at": "2019-08-04T03:37:33Z", "merge_commit_sha": "4c0912dbf27b12071aca9569bcf7233e60f91c7c", "assignee": null, "milestone": null, "draft": 0, "head": "243bcaa1acd32a173c07b24dca553991493005a0", "base": "e1021030dd2d8d4705ad0e7bae389eeaea7fa17b", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/53", "merged_by": null, "auto_merge": null} {"id": 290971295, "node_id": "MDExOlB1bGxSZXF1ZXN0MjkwOTcxMjk1", "number": 524, "state": "closed", "locked": 0, "title": "Sort commits using isort, refs #516", "user": {"value": 9599, "label": "simonw"}, "body": "Also added a lint unit test to ensure they stay sorted. #516", "created_at": "2019-06-24T05:04:48Z", "updated_at": "2023-08-23T01:31:08Z", "closed_at": "2023-08-23T01:31:08Z", "merged_at": null, "merge_commit_sha": "4e92ebe00a058e02b2d7543cff60ac2f78aa97c7", "assignee": null, "milestone": null, "draft": 0, "head": "dafae70ee7f74ce79b541a94385172be3ad0de83", "base": "cdd24f3eaa207f67d948c1876725b0f84654a623", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/524", "merged_by": null, "auto_merge": null} {"id": 1015591301, "node_id": "PR_kwDOCGYnMM48iLGF", "number": 462, "state": "closed", "locked": 0, "title": "Discord badge", "user": {"value": 9599, "label": "simonw"}, "body": "Also testing fix for:\r\n- https://github.com/readthedocs/readthedocs-preview/issues/10\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://sqlite-utils--462.org.readthedocs.build/en/462/\n\r\n", "created_at": "2022-08-02T20:56:04Z", "updated_at": "2022-08-02T21:15:57Z", "closed_at": "2022-08-02T21:15:52Z", "merged_at": "2022-08-02T21:15:52Z", "merge_commit_sha": "271433fdd18e436b0a527ab899cb6f6fa67f23d0", "assignee": null, "milestone": null, "draft": 0, "head": "0a14a031385f2647be0b9d15d96c1d44d05c2296", "base": "98a28cbfe6cea67f6334b42b74f35b0ddd309561", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/462", "merged_by": null, "auto_merge": null} {"id": 1009936222, "node_id": "PR_kwDOCGYnMM48Mmde", "number": 457, "state": "closed", "locked": 0, "title": "Link to installation instructions", "user": {"value": 9599, "label": "simonw"}, "body": "Also testing https://docs.readthedocs.io/en/stable/pull-requests.html", "created_at": "2022-07-27T17:38:36Z", "updated_at": "2022-08-27T03:55:52Z", "closed_at": "2022-07-27T17:57:50Z", "merged_at": "2022-07-27T17:57:50Z", "merge_commit_sha": "77ca051d4f5ddbd42fd6250749efac7ea85ea094", "assignee": null, "milestone": {"value": 8355157, "label": "3.29"}, "draft": 0, "head": "80b3907471f724aeecae75796663815c87731e77", "base": "9e6cceac1c0e086429e2d308b700e59cc53a1991", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/457", "merged_by": null, "auto_merge": null} {"id": 512736705, "node_id": "MDExOlB1bGxSZXF1ZXN0NTEyNzM2NzA1", "number": 1065, "state": "closed", "locked": 0, "title": "Nav menu plus menu_links() hook", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #1064, refs #690.", "created_at": "2020-10-30T03:40:18Z", "updated_at": "2020-10-30T03:45:17Z", "closed_at": "2020-10-30T03:45:16Z", "merged_at": "2020-10-30T03:45:16Z", "merge_commit_sha": "18a64fbb29271ce607937110bbdb55488c43f4e0", "assignee": null, "milestone": {"value": 6026070, "label": "0.51"}, "draft": 0, "head": "5f118b56afbeff5348acd50a8b87537210e731ee", "base": "1a861be19e326e0c88230a711a1b6536366697d7", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1065", "merged_by": null, "auto_merge": null} {"id": 329324368, "node_id": "MDExOlB1bGxSZXF1ZXN0MzI5MzI0MzY4", "number": 24, "state": "closed", "locked": 0, "title": "Tweet source extraction and new migration system", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #12 and #23", "created_at": "2019-10-17T15:24:56Z", "updated_at": "2019-10-17T15:49:29Z", "closed_at": "2019-10-17T15:49:24Z", "merged_at": "2019-10-17T15:49:24Z", "merge_commit_sha": "c9295233f219c446fa2085cace987067488a31b9", "assignee": null, "milestone": null, "draft": 0, "head": "39f822a624685e321dbca8a4318741dd1e42548b", "base": "619f724a722b3f23f4364f67d3164b93e8ba2a70", "author_association": "MEMBER", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "url": "https://github.com/dogsheep/twitter-to-sqlite/pull/24", "merged_by": null, "auto_merge": null} {"id": 608323028, "node_id": "MDExOlB1bGxSZXF1ZXN0NjA4MzIzMDI4", "number": 1290, "state": "closed", "locked": 0, "title": "Use pytest-xdist to speed up tests", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #1289, refs #1212.", "created_at": "2021-04-03T03:34:36Z", "updated_at": "2021-04-03T03:42:29Z", "closed_at": "2021-04-03T03:42:28Z", "merged_at": "2021-04-03T03:42:28Z", "merge_commit_sha": "0a7621f96f8ad14da17e7172e8a7bce24ef78966", "assignee": null, "milestone": null, "draft": 0, "head": "2fb1e4284f1f0f6aaba7e889a6713c0f96e802e1", "base": "59ef4a20cba1533bc347378415f4ffcd025f32c8", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1290", "merged_by": null, "auto_merge": null} {"id": 925926708, "node_id": "PR_kwDOBm6k_c43MIU0", "number": 1736, "state": "closed", "locked": 0, "title": "Clean up compatibility with Pyodide", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #1735, closes #1733", "created_at": "2022-05-02T20:14:38Z", "updated_at": "2022-05-02T20:15:28Z", "closed_at": "2022-05-02T20:15:27Z", "merged_at": "2022-05-02T20:15:27Z", "merge_commit_sha": "3f00a29141bdea5be747f6d1c93871ccdb792167", "assignee": null, "milestone": null, "draft": 0, "head": "784fe6a245a051ef6b42e153d3fae9cce7b0b148", "base": "a29c1277896b6a7905ef5441c42a37bc15f67599", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1736", "merged_by": null, "auto_merge": null} {"id": 1046943107, "node_id": "PR_kwDOBm6k_c4-ZxWD", "number": 1803, "state": "closed", "locked": 0, "title": "Workaround for test failure: RuntimeError: There is no current event loop", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #1802\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1803.org.readthedocs.build/en/1803/\n\r\n", "created_at": "2022-09-06T00:31:06Z", "updated_at": "2022-09-06T00:40:19Z", "closed_at": "2022-09-06T00:40:19Z", "merged_at": "2022-09-06T00:40:19Z", "merge_commit_sha": "64288d827f7ff97f825e10f714da3f781ecf9345", "assignee": null, "milestone": null, "draft": 0, "head": "7b6a2b48408697905bd93504b7f5554f4a7627ef", "base": "1c29b925d300d1ee17047504473f2517767aa05b", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1803", "merged_by": null, "auto_merge": null} {"id": 204851511, "node_id": "MDExOlB1bGxSZXF1ZXN0MjA0ODUxNTEx", "number": 353, "state": "closed", "locked": 0, "title": "render_cell(value) plugin hook", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #352.", "created_at": "2018-07-30T15:57:08Z", "updated_at": "2018-08-05T00:14:57Z", "closed_at": "2018-08-05T00:14:57Z", "merged_at": "2018-08-05T00:14:57Z", "merge_commit_sha": "4ac913224061f2dc4f673efab1a5ac6bc748854f", "assignee": null, "milestone": null, "draft": 0, "head": "2e538d924f3b17f82e94e8e8b5a05abcf9e1e697", "base": "295d005ca48747faf046ed30c3c61e7563c61ed2", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/353", "merged_by": null, "auto_merge": null} {"id": 313383317, "node_id": "MDExOlB1bGxSZXF1ZXN0MzEzMzgzMzE3", "number": 60, "state": "closed", "locked": 0, "title": "db.triggers and table.triggers introspection", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #59", "created_at": "2019-09-03T00:04:32Z", "updated_at": "2019-09-03T00:09:42Z", "closed_at": "2019-09-03T00:09:42Z", "merged_at": "2019-09-03T00:09:42Z", "merge_commit_sha": "2ca63e3b2de5408a860c6c7c1852deb9a138279e", "assignee": null, "milestone": null, "draft": 0, "head": "b0a27fbb34b4362ef192deb560612fabf046cd32", "base": "405e092d5916e70df10f82d15e9c052aa9ee8d80", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/60", "merged_by": null, "auto_merge": null} {"id": 339742432, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM5NzQyNDMy", "number": 630, "state": "closed", "locked": 0, "title": "Use python:3.8 base Docker image", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #629", "created_at": "2019-11-12T06:02:37Z", "updated_at": "2019-11-12T06:03:10Z", "closed_at": "2019-11-12T06:03:10Z", "merged_at": "2019-11-12T06:03:10Z", "merge_commit_sha": "d977fbadf70a96bf2eea1407d01f99d98e092dec", "assignee": null, "milestone": null, "draft": 0, "head": "53180ec09483bd4eef00346a39b302aeb3039e7d", "base": "f554be39fc14ddc18921ca29d3920d55aad03d46", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/630", "merged_by": null, "auto_merge": null} {"id": 381666777, "node_id": "MDExOlB1bGxSZXF1ZXN0MzgxNjY2Nzc3", "number": 688, "state": "closed", "locked": 0, "title": "Don't count rows on homepage for DBs > 100MB", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #649.", "created_at": "2020-02-29T01:01:06Z", "updated_at": "2020-02-29T01:08:30Z", "closed_at": "2020-02-29T01:08:29Z", "merged_at": "2020-02-29T01:08:29Z", "merge_commit_sha": "7f5a330377fd7db1f6d1efa5686d183bcaf89217", "assignee": null, "milestone": null, "draft": 0, "head": "025fdd46f77822c0cbeb7856611c0a65a9b83057", "base": "0f8e91c68f2d2ad48efc8324b12762bf8b58facd", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/688", "merged_by": null, "auto_merge": null} {"id": 379378780, "node_id": "MDExOlB1bGxSZXF1ZXN0Mzc5Mzc4Nzgw", "number": 686, "state": "closed", "locked": 0, "title": "?_searchmode=raw option", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #676", "created_at": "2020-02-25T05:45:50Z", "updated_at": "2020-02-25T05:56:09Z", "closed_at": "2020-02-25T05:56:04Z", "merged_at": "2020-02-25T05:56:04Z", "merge_commit_sha": "6cb65555f46456eb31b62e855e21b1d8c809b1a2", "assignee": null, "milestone": null, "draft": 0, "head": "abc782cb342c21b565142e44e70502e61ac6756b", "base": "a093c5f79fa034a97d2ad8b606745dd3b80365af", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/686", "merged_by": null, "auto_merge": null} {"id": 300580221, "node_id": "MDExOlB1bGxSZXF1ZXN0MzAwNTgwMjIx", "number": 8, "state": "closed", "locked": 0, "title": "Use less RAM", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #7", "created_at": "2019-07-24T06:35:01Z", "updated_at": "2019-07-24T06:35:52Z", "closed_at": "2019-07-24T06:35:52Z", "merged_at": "2019-07-24T06:35:52Z", "merge_commit_sha": "c8392df78ee3e1643d18b747a4abf585d84d5d88", "assignee": null, "milestone": null, "draft": 0, "head": "6261500b01274a739176480774e82b31f2926e7f", "base": "5d7e14d40d5a4cfd133ca5faa442312f607784c5", "author_association": "MEMBER", "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "url": "https://github.com/dogsheep/healthkit-to-sqlite/pull/8", "merged_by": null, "auto_merge": null} {"id": 424032445, "node_id": "MDExOlB1bGxSZXF1ZXN0NDI0MDMyNDQ1", "number": 769, "state": "closed", "locked": 0, "title": "Backport of Python 3.8 shutil.copytree", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #744", "created_at": "2020-05-27T18:17:15Z", "updated_at": "2020-05-27T20:21:56Z", "closed_at": "2020-05-27T18:17:44Z", "merged_at": "2020-05-27T18:17:44Z", "merge_commit_sha": "2d099ad9c657d2cab59de91cdb8bfed2da236ef6", "assignee": null, "milestone": {"value": 5471110, "label": "Datasette 0.43"}, "draft": 0, "head": "6f80757f27e4651e6533856ea87b676dbc0d9c37", "base": "cee671a58f417f827d1735b1abaa40716534ea67", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/769", "merged_by": null, "auto_merge": null} {"id": 275558612, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjc1NTU4NjEy", "number": 445, "state": "closed", "locked": 0, "title": "Extract facet code out into a new plugin hook, closes #427", "user": {"value": 9599, "label": "simonw"}, "body": "Datasette previously only supported one type of faceting: exact column value counting.\r\n\r\nWith this change, faceting logic is extracted out into one or more separate classes which can implement other patterns of faceting - this is discussed in #427, but potential upcoming facet types include facet-by-date, facet-by-JSON-array, facet-by-many-2-many and more.\r\n\r\nA new plugin hook, register_facet_classes, can be used by plugins to add in additional facet classes.\r\n\r\nEach class must implement two methods: suggest(), which scans columns in the table to decide if they might be worth suggesting for faceting, and facet_results(), which executes the facet operation and returns results ready to be displayed in the UI.", "created_at": "2019-05-03T00:02:41Z", "updated_at": "2019-05-03T18:17:18Z", "closed_at": "2019-05-03T00:11:27Z", "merged_at": "2019-05-03T00:11:27Z", "merge_commit_sha": "ea66c45df96479ef66a89caa71fff1a97a862646", "assignee": null, "milestone": null, "draft": 0, "head": "1b47d4d8736627c260eb4e8303e552b0e9620a01", "base": "efc93b8ab5a21e3802f75f08d5e41409f5684b5d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/445", "merged_by": null, "auto_merge": null} {"id": 313384926, "node_id": "MDExOlB1bGxSZXF1ZXN0MzEzMzg0OTI2", "number": 571, "state": "closed", "locked": 0, "title": "detect_fts now works with alternative table escaping", "user": {"value": 9599, "label": "simonw"}, "body": "Fixes #570", "created_at": "2019-09-03T00:23:39Z", "updated_at": "2019-09-03T00:32:28Z", "closed_at": "2019-09-03T00:32:28Z", "merged_at": "2019-09-03T00:32:28Z", "merge_commit_sha": "2dc5c8dc259a0606162673d394ba8cc1c6f54428", "assignee": null, "milestone": null, "draft": 0, "head": "a85239f69261c10f1a9f90514c8b5d113cb94585", "base": "f04deebec4f3842f7bd610cd5859de529f77d50e", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/571", "merged_by": null, "auto_merge": null} {"id": 196628304, "node_id": "MDExOlB1bGxSZXF1ZXN0MTk2NjI4MzA0", "number": 324, "state": "closed", "locked": 0, "title": "Speed up Travis by reusing pip wheel cache across builds", "user": {"value": 9599, "label": "simonw"}, "body": "From https://atchai.com/blog/faster-ci/ - refs #323 ", "created_at": "2018-06-22T03:20:08Z", "updated_at": "2018-06-24T01:03:47Z", "closed_at": "2018-06-24T01:03:47Z", "merged_at": "2018-06-24T01:03:47Z", "merge_commit_sha": "47e689a89b3f5f0969595b17d2ec59ea3caffb3b", "assignee": null, "milestone": null, "draft": 0, "head": "7d7f5f61fd6dca3385386a657a13057680d8ddd7", "base": "e7566cc59d4b02ef301054fd35fdde6c925a8e38", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/324", "merged_by": null, "auto_merge": null} {"id": 369394043, "node_id": "MDExOlB1bGxSZXF1ZXN0MzY5Mzk0MDQz", "number": 80, "state": "closed", "locked": 0, "title": "on_create mechanism for after table creation", "user": {"value": 9599, "label": "simonw"}, "body": "I need this for `geojson-to-sqlite`, in particular https://github.com/simonw/geojson-to-sqlite/issues/6", "created_at": "2020-01-31T03:38:48Z", "updated_at": "2020-01-31T05:08:04Z", "closed_at": "2020-01-31T05:08:04Z", "merged_at": null, "merge_commit_sha": "e6dc95d19348e72b28b42e73a18737cb2e4563e0", "assignee": null, "milestone": null, "draft": 0, "head": "45bf0c25492c276bde0b85868ffb55f169375bd7", "base": "f7289174e66ae4d91d57de94bbd9d09fabf7aff4", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/80", "merged_by": null, "auto_merge": null} {"id": 801798514, "node_id": "PR_kwDOBm6k_c4vynly", "number": 1554, "state": "closed", "locked": 0, "title": "TableView refactor", "user": {"value": 9599, "label": "simonw"}, "body": "I'm starting a PR with almost nothing in it so I can use the GitHub code commenting feature to add a bunch of comments to the code I intend to refactor.\r\n\r\nRelated issues:\r\n\r\n- #617 \r\n- #715 \r\n- #870\r\n- #1518", "created_at": "2021-12-13T23:16:04Z", "updated_at": "2021-12-20T23:52:11Z", "closed_at": "2021-12-20T23:52:04Z", "merged_at": null, "merge_commit_sha": "a68545f9a4c3b3a68259be5c03abfc9ad7710875", "assignee": null, "milestone": null, "draft": 0, "head": "1d08b46412410837f987c606b2307a121fa2641a", "base": "a6ff123de5464806441f6a6f95145c9a83b7f20b", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1554", "merged_by": null, "auto_merge": null} {"id": 275861559, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjc1ODYxNTU5", "number": 449, "state": "closed", "locked": 0, "title": "Apply black to everything", "user": {"value": 9599, "label": "simonw"}, "body": "I've been hesitating on this for literally months, because I'm not at all excited about the giant diff that will result. But I've been using black on many of my other projects (most actively [sqlite-utils](https://github.com/simonw/sqlite-utils)) and the productivity boost is undeniable: I don't have to spend a single second thinking about code formatting any more!\r\n\r\nSo it's worth swallowing the one-off pain and moving on in a new, black-enabled world.", "created_at": "2019-05-03T21:57:26Z", "updated_at": "2019-05-04T02:17:14Z", "closed_at": "2019-05-04T02:15:15Z", "merged_at": "2019-05-04T02:15:15Z", "merge_commit_sha": "35d6ee2790e41e96f243c1ff58be0c9c0519a8ce", "assignee": null, "milestone": null, "draft": 0, "head": "9683aeb2394a4b7e44499b8a0240af3baafda832", "base": "66c87cee0c7344c7877373c60b180c766c206101", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/449", "merged_by": null, "auto_merge": null} {"id": 440946817, "node_id": "MDExOlB1bGxSZXF1ZXN0NDQwOTQ2ODE3", "number": 869, "state": "closed", "locked": 0, "title": "Magic parameters for canned queries", "user": {"value": 9599, "label": "simonw"}, "body": "Implementation for #842\r\n\r\nTODO:\r\n\r\n- [x] Add tests for built-in magic parameters\r\n- [x] Magic parameters should not show up as blank form fields on the query page\r\n- [x] Update documentation for new `_request_X` (now called `_header_X`) implementation where X is a key from the ASGI scope\r\n- [x] Make sure these only work for canned queries, not for arbitrary SQL queries (security issue)\r\n- [x] Add test for the `register_magic_parameters` plugin hook\r\n- [x] Add documentation for the `register_magic_parameters` plugin hook\r\n", "created_at": "2020-06-27T18:37:21Z", "updated_at": "2020-06-28T02:58:18Z", "closed_at": "2020-06-28T02:58:17Z", "merged_at": "2020-06-28T02:58:17Z", "merge_commit_sha": "563f5a2d3ab30ad08daee38f5ec3ed6429ac9206", "assignee": null, "milestone": {"value": 5533512, "label": "Datasette 0.45"}, "draft": 0, "head": "9e693a7aae3b4a0882881e3a1c182e1c0c753efd", "base": "4b142862f237f95a731cb8263a293eda70d13c82", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/869", "merged_by": null, "auto_merge": null} {"id": 290897104, "node_id": "MDExOlB1bGxSZXF1ZXN0MjkwODk3MTA0", "number": 518, "state": "closed", "locked": 0, "title": "Port Datasette from Sanic to ASGI + Uvicorn", "user": {"value": 9599, "label": "simonw"}, "body": "Most of the code here was fleshed out in comments on #272 (Port Datasette to ASGI) - this pull request will track the final pieces:\r\n\r\n- [x] Update test harness to more correctly simulate the `raw_path` issue\r\n- [x] Use `raw_path` so table names containing `/` can work correctly\r\n- [x] Bug: JSON not served with correct content-type\r\n- [x] Get ?_trace=1 working again\r\n- [x] Replacement for `@app.listener(\"before_server_start\")`\r\n- [x] Bug: `/fixtures/table%2Fwith%2Fslashes.csv?_format=json` downloads as CSV\r\n- [x] Replace Sanic request and response objects with my own classes, so I can remove Sanic dependency\r\n- [x] Final code tidy-up before merging to master", "created_at": "2019-06-23T15:18:42Z", "updated_at": "2019-06-24T13:42:50Z", "closed_at": "2019-06-24T03:13:09Z", "merged_at": "2019-06-24T03:13:09Z", "merge_commit_sha": "ba8db9679f3bd2454c9e76e7e6c352126848b57a", "assignee": {"value": 9599, "label": "simonw"}, "milestone": {"value": 3268330, "label": "Datasette 1.0"}, "draft": 0, "head": "b794554a26ddc81bd772c4422d80d5ee863e92b0", "base": "35429f90894321eda7f2db31b9ea7976f31f73ac", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/518", "merged_by": null, "auto_merge": null} {"id": 339236647, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM5MjM2NjQ3", "number": 623, "state": "closed", "locked": 0, "title": "Test against Python 3.8 in Travis", "user": {"value": 9599, "label": "simonw"}, "body": "Needed for #622", "created_at": "2019-11-11T03:24:54Z", "updated_at": "2019-11-11T03:45:35Z", "closed_at": "2019-11-11T03:45:35Z", "merged_at": "2019-11-11T03:45:35Z", "merge_commit_sha": "1c063fae9dba70f70244db010d55a18846640f07", "assignee": null, "milestone": null, "draft": 0, "head": "877dda2d287ed3b1772f051dffd295a69c3ecd27", "base": "28c4a6db5b5e512db630d7ba6127196185de67c7", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/623", "merged_by": null, "auto_merge": null} {"id": 335980246, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM1OTgwMjQ2", "number": 8, "state": "closed", "locked": 0, "title": "stargazers command, refs #4", "user": {"value": 9599, "label": "simonw"}, "body": "Needs tests. Refs #4.", "created_at": "2019-11-03T00:37:36Z", "updated_at": "2020-05-02T20:00:27Z", "closed_at": "2020-05-02T20:00:26Z", "merged_at": null, "merge_commit_sha": "db25bdf8cee4c3e2d730cf269eb9a903b51cdb41", "assignee": null, "milestone": null, "draft": 0, "head": "ea07274667a08c67907e8bfbbccb6f0fb95ce817", "base": "ae9035f8fe5aff1c54bff4c6b4c2e808a44f0f2a", "author_association": "MEMBER", "repo": {"value": 207052882, "label": "github-to-sqlite"}, "url": "https://github.com/dogsheep/github-to-sqlite/pull/8", "merged_by": null, "auto_merge": null} {"id": 804924636, "node_id": "PR_kwDOBm6k_c4v-izc", "number": 1559, "state": "closed", "locked": 0, "title": "filters_from_request plugin hook, now used in TableView", "user": {"value": 9599, "label": "simonw"}, "body": "New plugin hook, refs #473\r\n\r\nUsed it to extract the logic from TableView that handles _search and\r\n_through and _where - refs #1518", "created_at": "2021-12-16T23:59:33Z", "updated_at": "2021-12-17T23:09:41Z", "closed_at": "2021-12-17T19:02:15Z", "merged_at": "2021-12-17T19:02:15Z", "merge_commit_sha": "aa7f0037a46eb76ae6fe9bf2a1f616c58738ecdf", "assignee": null, "milestone": null, "draft": 0, "head": "71af58d9392d42f45506cbc2370c1e9994126f63", "base": "0663d5525cc41e9260ac7d1f6386d3a6eb5ad2a9", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1559", "merged_by": null, "auto_merge": null} {"id": 1503774871, "node_id": "PR_kwDOBm6k_c5ZociX", "number": 2173, "state": "closed", "locked": 0, "title": "click-default-group>=1.2.3", "user": {"value": 9599, "label": "simonw"}, "body": "Now available as a wheel:\r\n- https://github.com/click-contrib/click-default-group/issues/21\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--2173.org.readthedocs.build/en/2173/\n\r\n", "created_at": "2023-09-06T02:33:28Z", "updated_at": "2023-09-06T02:50:10Z", "closed_at": "2023-09-06T02:50:10Z", "merged_at": "2023-09-06T02:50:10Z", "merge_commit_sha": "05707aa16b5c6c39fbe48b3176b85a8ffe493938", "assignee": null, "milestone": null, "draft": 0, "head": "a481ebd495d0f87ebd6dcf360a9cff25a6e148d7", "base": "fd083e37ec53e7e625111168d324a572344a3b19", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2173", "merged_by": null, "auto_merge": null} {"id": 205770996, "node_id": "MDExOlB1bGxSZXF1ZXN0MjA1NzcwOTk2", "number": 1, "state": "closed", "locked": 0, "title": "Make .indexes compatible with older SQLite versions", "user": {"value": 9599, "label": "simonw"}, "body": "Older SQLite versions return a different set of columns from the PRAGMA we are using.", "created_at": "2018-08-02T15:17:05Z", "updated_at": "2018-08-02T15:17:30Z", "closed_at": "2018-08-02T15:17:30Z", "merged_at": "2018-08-02T15:17:30Z", "merge_commit_sha": "741e8f7fe563e18fe9a12ac1ce38157e8c903505", "assignee": null, "milestone": null, "draft": 0, "head": "9e674311065b8372f0a93becc8e7357ceffd353b", "base": "0aa28293adedc488eb9107dc52b5e9a124887fbd", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/1", "merged_by": null, "auto_merge": null} {"id": 195339111, "node_id": "MDExOlB1bGxSZXF1ZXN0MTk1MzM5MTEx", "number": 311, "state": "closed", "locked": 0, "title": "?_labels=1 to expand foreign keys (in csv and json), refs #233", "user": {"value": 9599, "label": "simonw"}, "body": "Output looks something like this:\r\n\r\n {\r\n \"rowid\": 233,\r\n \"TreeID\": 121240,\r\n \"qLegalStatus\": {\r\n \"value\" 2,\r\n \"label\": \"Private\"\r\n }\r\n \"qSpecies\": {\r\n \"value\": 16,\r\n \"label\": \"Sycamore\"\r\n }\r\n \"qAddress\": \"91 Commonwealth Ave\",\r\n ...\r\n }", "created_at": "2018-06-16T16:31:12Z", "updated_at": "2018-06-16T22:20:31Z", "closed_at": "2018-06-16T22:20:31Z", "merged_at": null, "merge_commit_sha": "9fe59e54ad65eb1c8239b1a78edb5219d3ab8ab0", "assignee": null, "milestone": null, "draft": 0, "head": "40287b1ba09d6e75f0db1458fe78d8c055f128af", "base": "d0a578c0fc07b9d9208cd9de981bdf7385a26c49", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/311", "merged_by": null, "auto_merge": null} {"id": 393274433, "node_id": "MDExOlB1bGxSZXF1ZXN0MzkzMjc0NDMz", "number": 708, "state": "closed", "locked": 0, "title": "base_url configuration setting, refs #394", "user": {"value": 9599, "label": "simonw"}, "body": "Pull request implementing #394", "created_at": "2020-03-24T21:52:00Z", "updated_at": "2020-03-25T00:18:44Z", "closed_at": "2020-03-25T00:18:44Z", "merged_at": "2020-03-25T00:18:44Z", "merge_commit_sha": "7656fd64d8b6a32ebc34d89c1b8711cc5ea240f7", "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "draft": 0, "head": "b1f953b5de1bef239ddb1d133f9b2e19f8e3438a", "base": "a498d0fe6590f9bdbc4faf9e0dd5faeb3b06002c", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/708", "merged_by": null, "auto_merge": null} {"id": 1029373779, "node_id": "PR_kwDOCGYnMM49Wv9T", "number": 466, "state": "closed", "locked": 0, "title": "Use Read the Docs action v1 (#463)", "user": {"value": 9599, "label": "simonw"}, "body": "Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1`", "created_at": "2022-08-17T23:11:50Z", "updated_at": "2022-08-17T23:11:54Z", "closed_at": "2022-08-17T23:11:54Z", "merged_at": "2022-08-17T23:11:54Z", "merge_commit_sha": "bb90d3326815a041512b40bf0cf53b3ace06cd67", "assignee": null, "milestone": null, "draft": 0, "head": "83e7339255e811c62e6db8498c483c44a84d0f28", "base": "72655adabc596a9eed43cc11c07177a390791068", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/466", "merged_by": null, "auto_merge": null} {"id": 507903392, "node_id": "MDExOlB1bGxSZXF1ZXN0NTA3OTAzMzky", "number": 1040, "state": "closed", "locked": 0, "title": "/db/table/-/blob/pk/column.blob download URL", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1036. Still needs:\r\n\r\n- [x] Comprehensive tests across all of the code branches, plus permissions\r\n- [x] A bit more refactoring to share logic cleanly with `RowView`\r\n- ~~A configuration option to disable this feature (probably)~~", "created_at": "2020-10-21T22:39:15Z", "updated_at": "2020-10-24T23:09:20Z", "closed_at": "2020-10-24T23:09:19Z", "merged_at": "2020-10-24T23:09:19Z", "merge_commit_sha": "5a1519796037105bc20bcf2f91a76e022926c204", "assignee": null, "milestone": {"value": 6026070, "label": "0.51"}, "draft": 0, "head": "4f3165f25fd9241fcf1291c797f4c77766b954dc", "base": "bf82b3d6a605c9ddadd5fb739249dfe6defaf635", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1040", "merged_by": null, "auto_merge": null} {"id": 513106026, "node_id": "MDExOlB1bGxSZXF1ZXN0NTEzMTA2MDI2", "number": 1069, "state": "closed", "locked": 0, "title": "load_template() plugin hook", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1042", "created_at": "2020-10-30T15:59:45Z", "updated_at": "2020-10-30T17:47:20Z", "closed_at": "2020-10-30T17:47:19Z", "merged_at": "2020-10-30T17:47:19Z", "merge_commit_sha": "81dea4b07ab2b6f4eaaf248307d2b588472054a1", "assignee": null, "milestone": {"value": 6026070, "label": "0.51"}, "draft": 0, "head": "92f3840882a24da29d0d4073e5ed9d77fce438fc", "base": "fcf43589eb6a1f1d0432772a639fd35711c48e0c", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1069", "merged_by": null, "auto_merge": null} {"id": 518988879, "node_id": "MDExOlB1bGxSZXF1ZXN0NTE4OTg4ODc5", "number": 1085, "state": "closed", "locked": 0, "title": "Use FTS4 in fixtures", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1081", "created_at": "2020-11-11T06:44:30Z", "updated_at": "2020-11-12T00:02:59Z", "closed_at": "2020-11-12T00:02:58Z", "merged_at": "2020-11-12T00:02:58Z", "merge_commit_sha": "e8e0a6f284ca953b2980186c4356594c07bd1929", "assignee": null, "milestone": null, "draft": 0, "head": "51e7651c66aaf1804274ce68a6b5218bbba76338", "base": "2a981e2ac1d13125973904b777d00ea75e8df4e6", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1085", "merged_by": null, "auto_merge": null} {"id": 529783275, "node_id": "MDExOlB1bGxSZXF1ZXN0NTI5NzgzMjc1", "number": 1117, "state": "closed", "locked": 0, "title": "Support for generated columns", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1116. My first attempt at this worked on my laptop but broke in CI, so I'm going to iterate on it in a pull request instead.", "created_at": "2020-11-30T20:10:46Z", "updated_at": "2020-11-30T22:23:19Z", "closed_at": "2020-11-30T21:29:58Z", "merged_at": "2020-11-30T21:29:58Z", "merge_commit_sha": "461670a0b87efa953141b449a9a261919864ceb3", "assignee": null, "milestone": null, "draft": 0, "head": "ccdf2c650278b8b9465d3a2d7c916f3bb06c4f01", "base": "dea3c508b39528e566d711c38a467b3d372d220b", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1117", "merged_by": null, "auto_merge": null} {"id": 529887861, "node_id": "MDExOlB1bGxSZXF1ZXN0NTI5ODg3ODYx", "number": 1120, "state": "closed", "locked": 0, "title": "generated_columns table in fixtures.py", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1119", "created_at": "2020-12-01T00:17:19Z", "updated_at": "2020-12-01T00:28:03Z", "closed_at": "2020-12-01T00:28:02Z", "merged_at": "2020-12-01T00:28:02Z", "merge_commit_sha": "17cbbb1f7f230b39650afac62dd16476626001b5", "assignee": null, "milestone": null, "draft": 0, "head": "ddad8db2cc952eaf4f66f42324ccece115627b02", "base": "461670a0b87efa953141b449a9a261919864ceb3", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1120", "merged_by": null, "auto_merge": null} {"id": 490607949, "node_id": "MDExOlB1bGxSZXF1ZXN0NDkwNjA3OTQ5", "number": 161, "state": "closed", "locked": 0, "title": "table.transform() method", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #114\r\n\r\n- [x] Ability to change the primary key\r\n- [x] Support for changing default value for columns\r\n- [x] Support for changing `NOT NULL` status of columns\r\n- [x] Support for copying existing foreign keys and removing them\r\n- Support for `conversions=` parameter\r\n- [x] Detailed documentation\r\n- [x] `PRAGMA foreign_keys` stuff", "created_at": "2020-09-21T23:16:59Z", "updated_at": "2020-09-22T07:48:24Z", "closed_at": "2020-09-22T04:20:02Z", "merged_at": "2020-09-22T04:20:02Z", "merge_commit_sha": "987dd123f2ac43c5ab66d69e59d454fe09660606", "assignee": null, "milestone": {"value": 5897911, "label": "2.20"}, "draft": 0, "head": "dc3eb9c313502832c07f4de889aa60c373f45b52", "base": "ef882986d07f157b6bcc6be3d7b64270fda3e523", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/161", "merged_by": null, "auto_merge": null} {"id": 560725714, "node_id": "MDExOlB1bGxSZXF1ZXN0NTYwNzI1NzE0", "number": 1203, "state": "closed", "locked": 0, "title": "Easier way to run Prettier locally", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1167", "created_at": "2021-01-25T01:39:06Z", "updated_at": "2021-01-25T01:41:46Z", "closed_at": "2021-01-25T01:41:46Z", "merged_at": "2021-01-25T01:41:46Z", "merge_commit_sha": "ffff3a4c5398a9f40b61d59736f386444da19289", "assignee": null, "milestone": null, "draft": 0, "head": "98acc8865aa7826a40a7a076ab548ba8597af734", "base": "b6a7b58fa01af0cd5a5e94bd17d686d283a46819", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1203", "merged_by": null, "auto_merge": null} {"id": 560760145, "node_id": "MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1", "number": 1204, "state": "open", "locked": 0, "title": "WIP: Plugin includes", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1191\r\n\r\nNext steps:\r\n\r\n- [ ] Get comfortable that this pattern is the right way to go\r\n- [ ] Implement it for all of the other pages, not just the table page\r\n- [ ] Add a new set of plugin tests that exercise ALL of these new hook locations\r\n- [ ] Document, then ship", "created_at": "2021-01-25T03:59:06Z", "updated_at": "2021-12-17T07:10:49Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "98f06a766317a40035962416cf3211d7a374866a", "assignee": null, "milestone": null, "draft": 1, "head": "05258469ae39bcaad17beb57c5b7eeab0d58a589", "base": "07e163561592c743e4117f72102fcd350a600909", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1204", "merged_by": null, "auto_merge": null} {"id": 560831638, "node_id": "MDExOlB1bGxSZXF1ZXN0NTYwODMxNjM4", "number": 1206, "state": "closed", "locked": 0, "title": "Release 0.54", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1201", "created_at": "2021-01-25T06:45:47Z", "updated_at": "2021-01-25T17:33:30Z", "closed_at": "2021-01-25T17:33:29Z", "merged_at": "2021-01-25T17:33:29Z", "merge_commit_sha": "0b9ac1b2e9c855f1b823a06a898891da87c720ef", "assignee": null, "milestone": null, "draft": 0, "head": "571476d2cf8f7d7eac6098de8557264e69cac43f", "base": "a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1206", "merged_by": null, "auto_merge": null} {"id": 179108961, "node_id": "MDExOlB1bGxSZXF1ZXN0MTc5MTA4OTYx", "number": 192, "state": "closed", "locked": 0, "title": "New ?_shape=objects/object/lists param for JSON API", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #122", "created_at": "2018-04-03T14:02:58Z", "updated_at": "2018-04-03T14:53:00Z", "closed_at": "2018-04-03T14:52:55Z", "merged_at": "2018-04-03T14:52:55Z", "merge_commit_sha": "0abd3abacb309a2bd5913a7a2df4e9256585b1bb", "assignee": null, "milestone": null, "draft": 0, "head": "a759e09e8599e2cf54f6c5ab4d1cf8adf8608793", "base": "dd0566ff8eda7fa2f0d92e51809581fae62cffed", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/192", "merged_by": null, "auto_merge": null} {"id": 662557240, "node_id": "MDExOlB1bGxSZXF1ZXN0NjYyNTU3MjQw", "number": 1357, "state": "closed", "locked": 0, "title": "Make custom pages compatible with base_url setting", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1238.", "created_at": "2021-06-05T18:54:39Z", "updated_at": "2021-06-05T18:59:54Z", "closed_at": "2021-06-05T18:59:54Z", "merged_at": "2021-06-05T18:59:54Z", "merge_commit_sha": "a63412152518581c6a3d4e142b937e27dabdbfdb", "assignee": null, "milestone": null, "draft": 0, "head": "1b27643d7bd192e1d2cc52e36ada0021c3f76bb8", "base": "6e9b07be92905011211d8df7a872fb7c1f2737b2", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1357", "merged_by": null, "auto_merge": null} {"id": 598213565, "node_id": "MDExOlB1bGxSZXF1ZXN0NTk4MjEzNTY1", "number": 1271, "state": "open", "locked": 0, "title": "Use SQLite conn.interrupt() instead of sqlite_timelimit()", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1270, #1268, #1249\r\n\r\nBefore merging this I need to do some more testing (to make sure that expensive queries really are properly cancelled). I also need to delete a bunch of code relating to the old mechanism of cancelling queries.\r\n\r\n[See comment below: this doesn't actually cancel the query due to a thread-local confusion]", "created_at": "2021-03-22T17:34:20Z", "updated_at": "2021-03-22T21:49:27Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "a4fd7e5a761523881c031b4fee266a366e1c97bd", "assignee": null, "milestone": null, "draft": 1, "head": "fb2ad7ada0b86a7fe4a576fe23236757c41eb05e", "base": "c4f1ec7f33fd7d5b93f0f895dafb5351cc3bfc5b", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1271", "merged_by": null, "auto_merge": null} {"id": 712412883, "node_id": "MDExOlB1bGxSZXF1ZXN0NzEyNDEyODgz", "number": 1434, "state": "open", "locked": 0, "title": "Enrich arbitrary query results with foreign key links and column descriptions", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1293, follows #942.", "created_at": "2021-08-13T14:43:01Z", "updated_at": "2021-08-19T21:18:58Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "d4d4f5566b1d43075cb52ded5d19a9dcf4350761", "assignee": null, "milestone": null, "draft": 0, "head": "281c0872d5b8a462c9d7b2b2d77a924da4ed25a7", "base": "2883098770fc66e50183b2b231edbde20848d4d6", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1434", "merged_by": null, "auto_merge": null} {"id": 181731956, "node_id": "MDExOlB1bGxSZXF1ZXN0MTgxNzMxOTU2", "number": 210, "state": "closed", "locked": 0, "title": "Start of the plugin system, based on pluggy", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #14", "created_at": "2018-04-16T00:51:30Z", "updated_at": "2018-04-16T00:56:16Z", "closed_at": "2018-04-16T00:56:16Z", "merged_at": "2018-04-16T00:56:16Z", "merge_commit_sha": "33c7c53ff87c25445c68088ede49d062d9c31fe8", "assignee": null, "milestone": null, "draft": 0, "head": "d75e57060d9ef4ef6ebab3600e542885b7467272", "base": "efbb4e83374a2c795e436c72fa79f70da72309b8", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/210", "merged_by": null, "auto_merge": null} {"id": 702422263, "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyNDIyMjYz", "number": 1418, "state": "closed", "locked": 0, "title": "Spelling corrections plus CI job for codespell", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1417.", "created_at": "2021-08-03T16:21:19Z", "updated_at": "2021-08-03T16:36:39Z", "closed_at": "2021-08-03T16:36:38Z", "merged_at": "2021-08-03T16:36:38Z", "merge_commit_sha": "2208c3c68e552d343e6a2872ff6e559fca9d1b38", "assignee": null, "milestone": null, "draft": 0, "head": "532170fc606df04986104aacbd67b920c5fa0af9", "base": "54b6e96ee8aa553b6671e341a1944f93f3fb89c3", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1418", "merged_by": null, "auto_merge": null} {"id": 872324754, "node_id": "PR_kwDOBm6k_c4z_p6S", "number": 1648, "state": "closed", "locked": 0, "title": "Use dash encoding for table names and row primary keys in URLs", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1439.\r\n\r\n- [x] Build `dash_encode` / `dash_decode` functions\r\n- [x] Use dash encoding for row primary keys\r\n- [x] Use dash encoding for `?_next=` pagination tokens\r\n- [x] Use dash encoding for table names in URLs\r\n- [x] Use dash encoding for database name\r\n- ~~Implement redirects from previous `%` URLs that replace those with `-`~~ - separate issue: #1650", "created_at": "2022-03-05T19:50:45Z", "updated_at": "2022-03-07T15:38:30Z", "closed_at": "2022-03-07T15:38:30Z", "merged_at": "2022-03-07T15:38:29Z", "merge_commit_sha": "1baa030eca375f839f3471237547ab403523e643", "assignee": null, "milestone": null, "draft": 0, "head": "32548b88fdb413429d960966decba8f6b3889190", "base": "5010d1359b9e9db90a5a69a3ca22d12862893e00", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1648", "merged_by": null, "auto_merge": null} {"id": 758569502, "node_id": "PR_kwDOBm6k_c4tNtoe", "number": 1490, "state": "closed", "locked": 0, "title": "Upgrade to httpx 0.20", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1488 ", "created_at": "2021-10-14T17:51:05Z", "updated_at": "2021-10-14T18:03:45Z", "closed_at": "2021-10-14T18:03:44Z", "merged_at": "2021-10-14T18:03:44Z", "merge_commit_sha": "b267b5775436577a91a9f9655143908aecff05da", "assignee": null, "milestone": null, "draft": 0, "head": "e0332d1f4788a561492965a09ef83fe122fd3d8c", "base": "2a8c6690399ee832ee62aafdede1794f5945d911", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1490", "merged_by": null, "auto_merge": null} {"id": 481616704, "node_id": "MDExOlB1bGxSZXF1ZXN0NDgxNjE2NzA0", "number": 151, "state": "closed", "locked": 0, "title": "Tracer mechanism for seeing underlying SQL", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #150. Needs tests and documentation, including for the new `db.execute()` and `db.executescript()` methods.", "created_at": "2020-09-07T19:46:43Z", "updated_at": "2020-09-07T21:57:00Z", "closed_at": "2020-09-07T21:57:00Z", "merged_at": "2020-09-07T21:57:00Z", "merge_commit_sha": "cf2cb244faf992118f34aa196387a4ef8b39a20f", "assignee": null, "milestone": null, "draft": 0, "head": "dc82bf371911d01ac140f40ea99d06d2daee507e", "base": "3e87500e1561f5c4e105cd026d33e0f715cc7dea", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/151", "merged_by": null, "auto_merge": null} {"id": 838724548, "node_id": "PR_kwDOBm6k_c4x_evE", "number": 1622, "state": "closed", "locked": 0, "title": "Test against Python 3.11-dev", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1621", "created_at": "2022-02-02T21:39:38Z", "updated_at": "2022-02-02T21:58:53Z", "closed_at": "2022-02-02T21:58:53Z", "merged_at": "2022-02-02T21:58:53Z", "merge_commit_sha": "a9d8824617268c4d214dd3be2174ac452044f737", "assignee": null, "milestone": null, "draft": 0, "head": "fbaf317ab723482e971688cda72ce51825bcf4d7", "base": "8d5779acf0041cfd0db7f68f468419f9008b86ec", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1622", "merged_by": null, "auto_merge": null} {"id": 838755826, "node_id": "PR_kwDOBm6k_c4x_mXy", "number": 1626, "state": "open", "locked": 0, "title": "Try test suite against macOS and Windows", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1625", "created_at": "2022-02-02T22:26:51Z", "updated_at": "2022-02-03T01:22:44Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "83958f26a8458a108acb7c3c0a1c8aacb777586a", "assignee": null, "milestone": null, "draft": 0, "head": "4b4d0e1ff9e2ee998cbd71abd5f5806f25444ed9", "base": "b5e6b1a9e1332fca3effe45d55dd06ee4249f163", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1626", "merged_by": null, "auto_merge": null} {"id": 1154884166, "node_id": "PR_kwDOBm6k_c5E1iJG", "number": 1938, "state": "closed", "locked": 0, "title": "\"permissions\" blocks in metadata.json/yaml", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1636\r\n\r\n- [x] Documentation\r\n- [ ] Implementation\r\n- [ ] Validate metadata to check there are no nonsensical permissions (like `debug-menu` set at the table level)\r\n- [ ] Tests\r\n\r\n\r\n----\r\n:books: Documentation preview :books:: https://datasette--1938.org.readthedocs.build/en/1938/\r\n\r\n", "created_at": "2022-12-08T22:07:36Z", "updated_at": "2022-12-13T05:23:19Z", "closed_at": "2022-12-13T05:23:18Z", "merged_at": null, "merge_commit_sha": "271ea3ae0c858de2d392b61a1a4a9f5837cbddf8", "assignee": null, "milestone": {"value": 8711695, "label": " Datasette 1.0a2"}, "draft": 0, "head": "6e35a6b4f7ea9ba3fb6f02f45452eeb41de69786", "base": "e539c1c024bc62d88df91d9107cbe37e7f0fe55f", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1938", "merged_by": null, "auto_merge": null} {"id": 490703173, "node_id": "MDExOlB1bGxSZXF1ZXN0NDkwNzAzMTcz", "number": 166, "state": "closed", "locked": 0, "title": "Keyword only arguments for transform()", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #165", "created_at": "2020-09-22T05:41:44Z", "updated_at": "2020-09-22T06:39:11Z", "closed_at": "2020-09-22T06:39:11Z", "merged_at": "2020-09-22T06:39:10Z", "merge_commit_sha": "f8e10df00eae209fb0a1ea03384d9153f673a3ec", "assignee": null, "milestone": null, "draft": 0, "head": "f8648cac3a6dda90578a1536cdae44d145633a2c", "base": "987dd123f2ac43c5ab66d69e59d454fe09660606", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/166", "merged_by": null, "auto_merge": null} {"id": 880373442, "node_id": "PR_kwDOBm6k_c40eW7C", "number": 1659, "state": "closed", "locked": 0, "title": "Tilde encoding", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1657", "created_at": "2022-03-15T16:19:07Z", "updated_at": "2022-03-15T18:01:58Z", "closed_at": "2022-03-15T18:01:57Z", "merged_at": "2022-03-15T18:01:57Z", "merge_commit_sha": "a35393b29cfb5b8abdc6a94e577af1c9a5c13652", "assignee": null, "milestone": null, "draft": 0, "head": "99b8263806e81028af169f400352c26e5473ab44", "base": "c10cd48baf106659bf3f129ad7bfb2226be73821", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1659", "merged_by": null, "auto_merge": null} {"id": 882973374, "node_id": "PR_kwDOBm6k_c40oRq-", "number": 1664, "state": "closed", "locked": 0, "title": "Remove hashed URL mode", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1661.", "created_at": "2022-03-17T23:19:10Z", "updated_at": "2022-03-19T00:12:04Z", "closed_at": "2022-03-19T00:12:04Z", "merged_at": "2022-03-19T00:12:03Z", "merge_commit_sha": "d4f60c2388c01ddce1b16f95c16d310e037c9912", "assignee": null, "milestone": null, "draft": 0, "head": "eae91fe8c2934c8674f5202b2d9f85b6f674c410", "base": "30e5f0e67c38054a8087a2a4eae3fc4d1779af90", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1664", "merged_by": null, "auto_merge": null}