id,node_id,number,state,locked,title,user,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,milestone,draft,head,base,author_association,repo,url,merged_by,auto_merge 153432045,MDExOlB1bGxSZXF1ZXN0MTUzNDMyMDQ1,118,closed,0,Foreign key information on row and table pages,9599,,2017-11-18T03:13:27Z,2017-11-18T03:15:57Z,2017-11-18T03:15:50Z,2017-11-18T03:15:50Z,1b04662585ea1539014bfbd616a8112b650d5699,,,0,2fa60bc5e3c9d75c19e21a2384f52b58e1872fa8,6d39429daa4655e3cf7a6a7671493292a20a30a1,OWNER,107914493,https://github.com/simonw/datasette/pull/118,, 154246816,MDExOlB1bGxSZXF1ZXN0MTU0MjQ2ODE2,145,closed,0,Fix pytest version conflict,9599,"https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3'))",2017-11-22T20:15:34Z,2017-11-22T20:17:54Z,2017-11-22T20:17:52Z,2017-11-22T20:17:52Z,f96e55bce55d26c4d5b198edc536e1b8e9bbea43,,,0,e319478c4a34fb5afbff2b2a8c3b9ef9f859bb10,fa8eb0bf1b113ab17ede9cd107b7c3bd5cde39c3,OWNER,107914493,https://github.com/simonw/datasette/pull/145,, 157365811,MDExOlB1bGxSZXF1ZXN0MTU3MzY1ODEx,168,closed,0,Upgrade to Sanic 0.7.0,9599,,2017-12-09T01:25:08Z,2017-12-09T03:00:34Z,2017-12-09T03:00:34Z,2017-12-09T03:00:34Z,446f4b832272b2286f6f65af19714eb64afb7aa6,,,0,d9e13a5cc2b77637a6cdd8bd21b9b8fc1350051a,61e3c5a1e904a6e1cbee86ba1494b5cb4b5820cf,OWNER,107914493,https://github.com/simonw/datasette/pull/168,, 179108961,MDExOlB1bGxSZXF1ZXN0MTc5MTA4OTYx,192,closed,0,New ?_shape=objects/object/lists param for JSON API,9599,Refs #122,2018-04-03T14:02:58Z,2018-04-03T14:53:00Z,2018-04-03T14:52:55Z,2018-04-03T14:52:55Z,0abd3abacb309a2bd5913a7a2df4e9256585b1bb,,,0,a759e09e8599e2cf54f6c5ab4d1cf8adf8608793,dd0566ff8eda7fa2f0d92e51809581fae62cffed,OWNER,107914493,https://github.com/simonw/datasette/pull/192,, 180188397,MDExOlB1bGxSZXF1ZXN0MTgwMTg4Mzk3,196,closed,0,_sort= and _sort_desc= parameters to table view,9599,See #189 ,2018-04-09T00:07:21Z,2018-04-09T05:10:29Z,2018-04-09T05:10:23Z,2018-04-09T05:10:23Z,c1d37fdf2be84fb07155bb1b1f61057444b03300,,,0,fdd6b71e40c8aa9a93e95802a8b6291099d4db2c,b2188f044265c95f7e54860e28107c17d2a6ed2e,OWNER,107914493,https://github.com/simonw/datasette/pull/196,, 181731956,MDExOlB1bGxSZXF1ZXN0MTgxNzMxOTU2,210,closed,0,"Start of the plugin system, based on pluggy",9599,Refs #14,2018-04-16T00:51:30Z,2018-04-16T00:56:16Z,2018-04-16T00:56:16Z,2018-04-16T00:56:16Z,33c7c53ff87c25445c68088ede49d062d9c31fe8,,,0,d75e57060d9ef4ef6ebab3600e542885b7467272,efbb4e83374a2c795e436c72fa79f70da72309b8,OWNER,107914493,https://github.com/simonw/datasette/pull/210,, 181755220,MDExOlB1bGxSZXF1ZXN0MTgxNzU1MjIw,212,closed,0,New --plugins-dir=plugins/ option,9599,Refs #211,2018-04-16T05:19:28Z,2018-04-16T05:22:18Z,2018-04-16T05:22:01Z,2018-04-16T05:22:01Z,b2955d9065ea019500c7d072bcd9d49d1967f051,,,0,33c6bcadb962457be6b0c7f369826b404e2bcef5,92396ae5bacedfcb3d7c81319ccdd04483fd7fd4,OWNER,107914493,https://github.com/simonw/datasette/pull/212,, 182357613,MDExOlB1bGxSZXF1ZXN0MTgyMzU3NjEz,222,closed,0,Fix for plugins in Python 3.5,9599,,2018-04-18T03:21:01Z,2018-04-18T04:26:50Z,2018-04-18T03:24:21Z,2018-04-18T03:24:21Z,4be6deb94776744071311777f0b18efb993c0cfa,,,0,420cdcb88ee41c15a90fce30fdec5832c03295bd,1c36d07dd432b9960f4f2d096739460b4fcf8877,OWNER,107914493,https://github.com/simonw/datasette/pull/222,, 185307407,MDExOlB1bGxSZXF1ZXN0MTg1MzA3NDA3,246,closed,0,?_shape=array and _timelimit=,9599,,2018-05-02T00:18:54Z,2018-05-02T00:20:41Z,2018-05-02T00:20:40Z,2018-05-02T00:20:40Z,690736436bac599ca042d1caa465c6d66d2651f9,,,0,3807d93b98573e142858c5871b8b4aadda71d28f,aa954382c3776d596f459897b0d984161293529d,OWNER,107914493,https://github.com/simonw/datasette/pull/246,, 187668890,MDExOlB1bGxSZXF1ZXN0MTg3NjY4ODkw,257,closed,0,Refactor views,9599,"* Split out view classes from main `app.py` * Run [black](https://github.com/ambv/black) against resulting code to apply opinionated source code formatting * Run [isort](https://github.com/timothycrosley/isort) to re-order my imports Refs #256 ",2018-05-13T13:00:50Z,2018-05-14T03:04:25Z,2018-05-14T03:04:24Z,2018-05-14T03:04:24Z,2b79f2bdeb1efa86e0756e741292d625f91cb93d,,,0,0e2b41f3fa38456af32548c536f955c48c7637e8,4301a8f3ac69f2f54916e73cc90fcf216a9a3746,OWNER,107914493,https://github.com/simonw/datasette/pull/257,, 188312411,MDExOlB1bGxSZXF1ZXN0MTg4MzEyNDEx,261,closed,0,Facets improvements plus suggested facets,9599,Refs #255,2018-05-16T03:52:39Z,2018-05-16T15:27:26Z,2018-05-16T15:27:25Z,2018-05-16T15:27:25Z,9959a9e4deec8e3e178f919e8b494214d5faa7fd,,,0,af0e91e7769891949198fb1e1760886424f34b16,2b79f2bdeb1efa86e0756e741292d625f91cb93d,OWNER,107914493,https://github.com/simonw/datasette/pull/261,, 193361341,MDExOlB1bGxSZXF1ZXN0MTkzMzYxMzQx,307,closed,0,"Initial sketch of custom URL routing, refs #306",9599,See #306 for background on this.,2018-06-07T15:26:48Z,2018-06-07T15:29:54Z,2018-06-07T15:29:41Z,,8c6663d3cc8043fc6f5c796275e80b0445bdff12,,,0,018af454f286120452e33d2568dd40908474a8a8,a246f476b4fe490f5450836b22961bc607e6b4b0,OWNER,107914493,https://github.com/simonw/datasette/pull/307,, 195339111,MDExOlB1bGxSZXF1ZXN0MTk1MzM5MTEx,311,closed,0,"?_labels=1 to expand foreign keys (in csv and json), refs #233",9599,"Output looks something like this: { ""rowid"": 233, ""TreeID"": 121240, ""qLegalStatus"": { ""value"" 2, ""label"": ""Private"" } ""qSpecies"": { ""value"": 16, ""label"": ""Sycamore"" } ""qAddress"": ""91 Commonwealth Ave"", ... }",2018-06-16T16:31:12Z,2018-06-16T22:20:31Z,2018-06-16T22:20:31Z,,9fe59e54ad65eb1c8239b1a78edb5219d3ab8ab0,,,0,40287b1ba09d6e75f0db1458fe78d8c055f128af,d0a578c0fc07b9d9208cd9de981bdf7385a26c49,OWNER,107914493,https://github.com/simonw/datasette/pull/311,, 195413241,MDExOlB1bGxSZXF1ZXN0MTk1NDEzMjQx,315,closed,0,Streaming mode for downloading all rows as a CSV,9599,Refs #266,2018-06-18T03:06:59Z,2018-06-18T03:29:13Z,2018-06-18T03:21:02Z,2018-06-18T03:21:02Z,fc3660cfad7668dbce6ead12766e048fc1f78b11,,,0,b15f412e04ce9ff21983986e661fbe4396f97b43,0d7ba1ba676828dc7c8dda78ebe7921f7986fc18,OWNER,107914493,https://github.com/simonw/datasette/pull/315,, 196628304,MDExOlB1bGxSZXF1ZXN0MTk2NjI4MzA0,324,closed,0,Speed up Travis by reusing pip wheel cache across builds,9599,From https://atchai.com/blog/faster-ci/ - refs #323 ,2018-06-22T03:20:08Z,2018-06-24T01:03:47Z,2018-06-24T01:03:47Z,2018-06-24T01:03:47Z,47e689a89b3f5f0969595b17d2ec59ea3caffb3b,,,0,7d7f5f61fd6dca3385386a657a13057680d8ddd7,e7566cc59d4b02ef301054fd35fdde6c925a8e38,OWNER,107914493,https://github.com/simonw/datasette/pull/324,, 201075532,MDExOlB1bGxSZXF1ZXN0MjAxMDc1NTMy,341,closed,0,Bump aiohttp to fix compatibility with Python 3.7,9599,Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333,2018-07-12T17:41:24Z,2018-07-12T18:07:38Z,2018-07-12T18:07:38Z,2018-07-12T18:07:38Z,31a5d8fa77be68d4f837f0a80a611675dce49f4b,,,0,8d34ed776168dcac530859c51f22e8b48829a513,130dc8823ebdcc1834fc7c4a03c996b13fc1e444,OWNER,107914493,https://github.com/simonw/datasette/pull/341,, 204029142,MDExOlB1bGxSZXF1ZXN0MjA0MDI5MTQy,349,closed,0,"publish_subcommand hook + default plugins mechanism, used for publish heroku/now",9599,"This change introduces a new plugin hook, publish_subcommand, which can be used to implement new subcommands for the ""datasette publish"" command family. I've used this new hook to refactor out the ""publish now"" and ""publish heroku"" implementations into separate modules. I've also added unit tests for these two publishers, mocking the subprocess.call and subprocess.check_output functions. As part of this, I introduced a mechanism for loading default plugins. These are defined in the new ""default_plugins"" list inside datasette/app.py Closes #217 (Plugin support for ""datasette publish"") Closes #348 (Unit tests for ""datasette publish"") Refs #14, #59, #102, #103, #146, #236, #347",2018-07-26T05:03:22Z,2018-07-26T05:28:54Z,2018-07-26T05:16:00Z,2018-07-26T05:16:00Z,dbbe707841973b50a76d2703003ae2c40e7ad1fd,,,0,7abdfd55daa9c617da02fd768b8e7476e89f0f94,3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1,OWNER,107914493,https://github.com/simonw/datasette/pull/349,, 204851511,MDExOlB1bGxSZXF1ZXN0MjA0ODUxNTEx,353,closed,0,render_cell(value) plugin hook,9599,Closes #352.,2018-07-30T15:57:08Z,2018-08-05T00:14:57Z,2018-08-05T00:14:57Z,2018-08-05T00:14:57Z,4ac913224061f2dc4f673efab1a5ac6bc748854f,,,0,2e538d924f3b17f82e94e8e8b5a05abcf9e1e697,295d005ca48747faf046ed30c3c61e7563c61ed2,OWNER,107914493,https://github.com/simonw/datasette/pull/353,, 206863803,MDExOlB1bGxSZXF1ZXN0MjA2ODYzODAz,358,closed,0,"Bump versions of pytest, pluggy and beautifulsoup4",9599,,2018-08-08T00:44:38Z,2018-08-08T01:11:13Z,2018-08-08T01:11:13Z,2018-08-08T01:11:13Z,e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5,,,0,848ed0e0420d2e8c95a96b4cf73082da4c65d8f6,fe5b6ea95a973534fe8a44907c0ea2449aae7602,OWNER,107914493,https://github.com/simonw/datasette/pull/358,, 208719043,MDExOlB1bGxSZXF1ZXN0MjA4NzE5MDQz,361,closed,0," Import pysqlite3 if available, closes #360 ",9599,,2018-08-16T00:52:21Z,2018-08-16T00:58:57Z,2018-08-16T00:58:57Z,2018-08-16T00:58:57Z,aae49fef3b75848628d824077ec063834e3e5167,,,0,da41daa168af8f29a1beb5278aed833cf3dc48ce,e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5,OWNER,107914493,https://github.com/simonw/datasette/pull/361,, 232172106,MDExOlB1bGxSZXF1ZXN0MjMyMTcyMTA2,389,closed,0,Bump dependency versions,9599,,2018-11-20T02:23:12Z,2019-11-13T19:13:41Z,2019-11-13T19:13:41Z,,9194c0165aef411e0784ba49939b1005306f1f38,,,0,f8349b45916e68d2f89c57694bd0e6afaf1bd508,5e3a432a0caa23837fa58134f69e2f82e4f632a6,OWNER,107914493,https://github.com/simonw/datasette/pull/389,, 241418443,MDExOlB1bGxSZXF1ZXN0MjQxNDE4NDQz,392,closed,0,Fix some regex DeprecationWarnings,9599,,2018-12-29T02:10:28Z,2018-12-29T02:22:28Z,2018-12-29T02:22:28Z,2018-12-29T02:22:28Z,a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a,,,0,d245982aedaf7c54bf41d60ea7f0e0cf419c2b2f,eac08f0dfc61a99e8887442fc247656d419c76f8,OWNER,107914493,https://github.com/simonw/datasette/pull/392,, 247923347,MDExOlB1bGxSZXF1ZXN0MjQ3OTIzMzQ3,404,closed,0,Experiment: run Jinja in async mode,9599,"See http://jinja.pocoo.org/docs/2.10/api/#async-support Tests all pass. Have not checked performance difference yet. Creating pull request to run tests in Travis. This is not ready to merge - I'm not yet sure if this is a good idea.",2019-01-27T00:28:44Z,2019-11-12T05:02:18Z,2019-11-12T05:02:13Z,,773bcac907d17b16eef604ad943837da39a10090,,,0,dd7f24a47f660e2f0fc1e97a13d28908c28dc245,909cc8fbdfc9c05e447f40e9a73489809602c3cd,OWNER,107914493,https://github.com/simonw/datasette/pull/404,, 250628275,MDExOlB1bGxSZXF1ZXN0MjUwNjI4Mjc1,407,closed,0,Heroku --include-vcs-ignore,9599,"Should mean `datasette publish heroku` can work under Travis, unlike this failure: https://travis-ci.org/simonw/fivethirtyeight-datasette/builds/488047550 ``` 2.25s$ datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette tar: unrecognized option '--exclude-vcs-ignores' Try 'tar --help' or 'tar --usage' for more information. ▸ Command failed: tar cz -C /tmp/tmpuaxm7i8f --exclude-vcs-ignores --exclude ▸ .git --exclude .gitmodules . > ▸ /tmp/f49440e0-1bf3-4d3f-9eb0-fbc2967d1fd4.tar.gz ▸ tar: unrecognized option '--exclude-vcs-ignores' ▸ Try 'tar --help' or 'tar --usage' for more information. ▸ The command ""datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette"" exited with 0. ``` The fix for that issue is to call the heroku command like this: heroku builds:create -a app_name --include-vcs-ignore ",2019-02-06T04:06:20Z,2019-02-06T04:31:30Z,2019-02-06T04:15:47Z,2019-02-06T04:15:46Z,195a5b36349d0d24a6bbb758cebb719b6de303b6,,,0,01978ddb9682c828cafddaf9ca625e08ba3ba3a4,436b8bc1d17c2ab415800ab209204f94e7f7929e,OWNER,107914493,https://github.com/simonw/datasette/pull/407,, 261418285,MDExOlB1bGxSZXF1ZXN0MjYxNDE4Mjg1,416,closed,0,URL hashing now optional: turn on with --config hash_urls:1 (#418),9599,,2019-03-15T04:26:06Z,2019-03-17T22:55:04Z,2019-03-17T22:55:04Z,2019-03-17T22:55:04Z,6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee,,,0,0d02a99c9665669540aebff981246d8c743072b3,afe9aa3ae03c485c5d6652741438d09445a486c1,OWNER,107914493,https://github.com/simonw/datasette/pull/416,, 269364924,MDExOlB1bGxSZXF1ZXN0MjY5MzY0OTI0,426,closed,0,Upgrade to Jinja2==2.10.1,9599,"https://nvd.nist.gov/vuln/detail/CVE-2019-10906 This is only a security issue of concern if evaluating templates from untrusted sources, which isn't something I would ever expect a Datasette user to do.",2019-04-10T23:03:08Z,2019-04-22T21:23:22Z,2019-04-10T23:13:31Z,2019-04-10T23:13:31Z,9cd3b44277e6a8ea9273bf659379ff0414e0b8ae,,,0,629453383c7f911eddfc891f22c39b7d6e9661aa,78e45ead4d771007c57b307edf8fc920101f8733,OWNER,107914493,https://github.com/simonw/datasette/pull/426,, 270191084,MDExOlB1bGxSZXF1ZXN0MjcwMTkxMDg0,430,closed,0,"?_where= parameter on table views, closes #429",9599,,2019-04-13T01:15:09Z,2019-04-13T01:37:23Z,2019-04-13T01:37:23Z,2019-04-13T01:37:23Z,bc6a9b45646610f362b4287bc4110440991aa4d6,,,0,3ee087c7b60da7ec3e5d2f73611fc6ea99ff82fc,e11cb4c66442abca2a6b6159521a6cf4da8739c1,OWNER,107914493,https://github.com/simonw/datasette/pull/430,, 270251021,MDExOlB1bGxSZXF1ZXN0MjcwMjUxMDIx,432,closed,0,"Refactor facets to a class and new plugin, refs #427",9599,WIP for #427,2019-04-13T20:04:45Z,2019-05-03T00:04:24Z,2019-05-03T00:04:24Z,,b78bc19269ed83b054a60c79c4fe08f4ca943942,,,0,5c198f7ca5d2aff49180820271ba8d06b79aefb1,9c77e6e355ec718d76178a7607721d10a66b6aef,OWNER,107914493,https://github.com/simonw/datasette/pull/432,, 275558612,MDExOlB1bGxSZXF1ZXN0Mjc1NTU4NjEy,445,closed,0,"Extract facet code out into a new plugin hook, closes #427",9599,"Datasette previously only supported one type of faceting: exact column value counting. With 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. A new plugin hook, register_facet_classes, can be used by plugins to add in additional facet classes. Each 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.",2019-05-03T00:02:41Z,2019-05-03T18:17:18Z,2019-05-03T00:11:27Z,2019-05-03T00:11:27Z,ea66c45df96479ef66a89caa71fff1a97a862646,,,0,1b47d4d8736627c260eb4e8303e552b0e9620a01,efc93b8ab5a21e3802f75f08d5e41409f5684b5d,OWNER,107914493,https://github.com/simonw/datasette/pull/445,, 275801463,MDExOlB1bGxSZXF1ZXN0Mjc1ODAxNDYz,447,closed,0,Use dist: xenial and python: 3.7 on Travis,9599,,2019-05-03T18:07:07Z,2019-05-03T18:17:05Z,2019-05-03T18:16:53Z,2019-05-03T18:16:53Z,553314dcd699a84aa7cc806377150ca0d57a6024,,,0,cd22e389d09b4fd5ed28205ba38a20faf1ed14f1,01b3de5b66742f0f661183e9e2ef66be3600e831,OWNER,107914493,https://github.com/simonw/datasette/pull/447,, 275861559,MDExOlB1bGxSZXF1ZXN0Mjc1ODYxNTU5,449,closed,0,Apply black to everything,9599,"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! So it's worth swallowing the one-off pain and moving on in a new, black-enabled world.",2019-05-03T21:57:26Z,2019-05-04T02:17:14Z,2019-05-04T02:15:15Z,2019-05-04T02:15:15Z,35d6ee2790e41e96f243c1ff58be0c9c0519a8ce,,,0,9683aeb2394a4b7e44499b8a0240af3baafda832,66c87cee0c7344c7877373c60b180c766c206101,OWNER,107914493,https://github.com/simonw/datasette/pull/449,, 284390197,MDExOlB1bGxSZXF1ZXN0Mjg0MzkwMTk3,497,closed,0,Upgrade pytest to 4.6.1,9599,,2019-06-03T01:45:34Z,2019-06-03T02:06:32Z,2019-06-03T02:06:27Z,2019-06-03T02:06:27Z,5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,,,0,bf2ab0306e6d3ce7524fecf015e2cec7ae45e994,803f750309bf0cd5b7501228c1efcf9a35686d74,OWNER,107914493,https://github.com/simonw/datasette/pull/497,, 285698310,MDExOlB1bGxSZXF1ZXN0Mjg1Njk4MzEw,501,closed,0,Test against Python 3.8-dev using Travis,9599,,2019-06-06T08:37:53Z,2019-11-11T03:23:29Z,2019-11-11T03:23:29Z,,1aac0cf0ab962060dd5cff19b8b179bb7fa0f00b,,,0,a5defb684fcc734f6325ca08beef9f49c3e7a298,5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,OWNER,107914493,https://github.com/simonw/datasette/pull/501,, 290897104,MDExOlB1bGxSZXF1ZXN0MjkwODk3MTA0,518,closed,0,Port Datasette from Sanic to ASGI + Uvicorn,9599,"Most of the code here was fleshed out in comments on #272 (Port Datasette to ASGI) - this pull request will track the final pieces: - [x] Update test harness to more correctly simulate the `raw_path` issue - [x] Use `raw_path` so table names containing `/` can work correctly - [x] Bug: JSON not served with correct content-type - [x] Get ?_trace=1 working again - [x] Replacement for `@app.listener(""before_server_start"")` - [x] Bug: `/fixtures/table%2Fwith%2Fslashes.csv?_format=json` downloads as CSV - [x] Replace Sanic request and response objects with my own classes, so I can remove Sanic dependency - [x] Final code tidy-up before merging to master",2019-06-23T15:18:42Z,2019-06-24T13:42:50Z,2019-06-24T03:13:09Z,2019-06-24T03:13:09Z,ba8db9679f3bd2454c9e76e7e6c352126848b57a,9599,3268330,0,b794554a26ddc81bd772c4422d80d5ee863e92b0,35429f90894321eda7f2db31b9ea7976f31f73ac,OWNER,107914493,https://github.com/simonw/datasette/pull/518,, 290971295,MDExOlB1bGxSZXF1ZXN0MjkwOTcxMjk1,524,closed,0,"Sort commits using isort, refs #516",9599,Also added a lint unit test to ensure they stay sorted. #516,2019-06-24T05:04:48Z,2023-08-23T01:31:08Z,2023-08-23T01:31:08Z,,4e92ebe00a058e02b2d7543cff60ac2f78aa97c7,,,0,dafae70ee7f74ce79b541a94385172be3ad0de83,cdd24f3eaa207f67d948c1876725b0f84654a623,OWNER,107914493,https://github.com/simonw/datasette/pull/524,, 293962405,MDExOlB1bGxSZXF1ZXN0MjkzOTYyNDA1,533,closed,0,"Support cleaner custom templates for rows and tables, closes #521",9599,"- [x] Rename `_rows_and_columns.html` to `_table.html` - [x] Unit test - [x] Documentation",2019-07-03T00:40:18Z,2019-07-03T03:23:06Z,2019-07-03T03:23:06Z,2019-07-03T03:23:06Z,b9ede4c1898616512b5d204f9c941deff473cbe4,,,0,1add905532b7bc4f681318b8f22b9b74cca2b2a0,76882830548e16905348ee75acb0044cb8e1fd20,OWNER,107914493,https://github.com/simonw/datasette/pull/533,, 293992382,MDExOlB1bGxSZXF1ZXN0MjkzOTkyMzgy,535,closed,0,"Added asgi_wrapper plugin hook, closes #520",9599,,2019-07-03T03:58:00Z,2019-07-03T04:06:26Z,2019-07-03T04:06:26Z,2019-07-03T04:06:26Z,4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3,,,0,93bfa26bfd25a3cc911d637596e364d3474325bd,b9ede4c1898616512b5d204f9c941deff473cbe4,OWNER,107914493,https://github.com/simonw/datasette/pull/535,, 293994443,MDExOlB1bGxSZXF1ZXN0MjkzOTk0NDQz,536,closed,0,"Switch to ~= dependencies, closes #532",9599,,2019-07-03T04:12:16Z,2019-07-03T04:32:55Z,2019-07-03T04:32:55Z,2019-07-03T04:32:55Z,f0d32da0a9af87bcb15e34e35424f0c0053be83a,,,0,391d109dc3f9230dc4ee4afd20041e480e90e739,4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3,OWNER,107914493,https://github.com/simonw/datasette/pull/536,, 294400446,MDExOlB1bGxSZXF1ZXN0Mjk0NDAwNDQ2,539,closed,0,Secret plugin configuration options,9599,Refs #538 ,2019-07-04T03:21:20Z,2019-07-04T05:36:45Z,2019-07-04T05:36:45Z,2019-07-04T05:36:45Z,a2d45931935f6bb73605a94afedf9e78308c95d6,,,0,fd6164b03ebe450a9a00df2e5be2dc7bbfbd9a3f,f0d32da0a9af87bcb15e34e35424f0c0053be83a,OWNER,107914493,https://github.com/simonw/datasette/pull/539,, 294992578,MDExOlB1bGxSZXF1ZXN0Mjk0OTkyNTc4,542,closed,0,extra_template_vars plugin hook,9599,Refs #541,2019-07-05T22:19:17Z,2019-07-06T00:05:57Z,2019-07-06T00:05:56Z,2019-07-06T00:05:56Z,fcfcae21e67cc15090942b1d2a47b5f016279337,,,0,e81c7abb40c8ecf8d9d23cbcdde045e0a3b4ab14,a18e0964ecd04593f227616538a80dee08768057,OWNER,107914493,https://github.com/simonw/datasette/pull/542,, 295065796,MDExOlB1bGxSZXF1ZXN0Mjk1MDY1Nzk2,544,closed,0,--plugin-secret option,9599,"Refs #543 - [x] Zeit Now v1 support - [x] Solve escaping of ENV in Dockerfile - [x] Heroku support - [x] Unit tests - [x] Cloud Run support - [x] Documentation ",2019-07-06T22:18:20Z,2019-07-08T02:06:31Z,2019-07-08T02:06:31Z,2019-07-08T02:06:31Z,973f8f139df6ad425354711052cfc2256de2e522,,4471010,0,ccf80604e931fba1893b5bab11de386fed82009e,fcfcae21e67cc15090942b1d2a47b5f016279337,OWNER,107914493,https://github.com/simonw/datasette/pull/544,, 295127213,MDExOlB1bGxSZXF1ZXN0Mjk1MTI3MjEz,546,open,0,Facet by delimiter,9599,Refs #510,2019-07-07T20:06:05Z,2019-11-18T23:46:01Z,,,68a6fb1a576a747b868771d00a10753f35aaa0cf,,,0,47ac6c6e46da16716d295d7cda8f79cd0663ca5e,a9909c29ccac771c23c2ef22b89d10697b5256b9,OWNER,107914493,https://github.com/simonw/datasette/pull/546,, 296735320,MDExOlB1bGxSZXF1ZXN0Mjk2NzM1MzIw,557,closed,0,Get tests running on Windows using Travis CI,9599,Refs #511,2019-07-11T16:36:57Z,2021-07-10T23:39:48Z,2021-07-10T23:39:48Z,,cddb9a9fecfa25147d80df05f1a6d6e1686ca30d,,,0,47b5ab43be87217c4e40ad93b8aa2e9639fa371f,f2006cca80040871439055ae6ccbc14e589bdf4b,OWNER,107914493,https://github.com/simonw/datasette/pull/557,, 297243073,MDExOlB1bGxSZXF1ZXN0Mjk3MjQzMDcz,559,closed,0,Bump to uvicorn 0.8.4,9599,"https://github.com/encode/uvicorn/commits/0.8.4 Query strings will now be included in log files: https://github.com/encode/uvicorn/pull/384",2019-07-12T22:30:29Z,2019-07-13T22:34:58Z,2019-07-13T22:34:58Z,2019-07-13T22:34:58Z,d224ee2c98ac39c2c6e21a0ac0c62e5c3e1ccd11,,,0,029e3d53634cc38690d5b56427a3c87851a61b09,f2006cca80040871439055ae6ccbc14e589bdf4b,OWNER,107914493,https://github.com/simonw/datasette/pull/559,, 301483613,MDExOlB1bGxSZXF1ZXN0MzAxNDgzNjEz,564,open,0,First proof-of-concept of Datasette Library,9599,"Refs #417. Run it like this: datasette -d ~/Library Uses a new plugin hook - available_databases() ",2019-07-26T10:22:26Z,2023-02-07T15:14:11Z,,,4f425d2b39d1be10d7ef5c146480a3eb494d5086,,,1,947645d84710677ea50762016081a9fbc6b014a8,a9453c4dda70bbf5122835e68f63db6ecbe1a6fc,OWNER,107914493,https://github.com/simonw/datasette/pull/564,, 313384926,MDExOlB1bGxSZXF1ZXN0MzEzMzg0OTI2,571,closed,0,detect_fts now works with alternative table escaping,9599,Fixes #570,2019-09-03T00:23:39Z,2019-09-03T00:32:28Z,2019-09-03T00:32:28Z,2019-09-03T00:32:28Z,2dc5c8dc259a0606162673d394ba8cc1c6f54428,,,0,a85239f69261c10f1a9f90514c8b5d113cb94585,f04deebec4f3842f7bd610cd5859de529f77d50e,OWNER,107914493,https://github.com/simonw/datasette/pull/571,, 323983732,MDExOlB1bGxSZXF1ZXN0MzIzOTgzNzMy,579,open,0,New connection pooling,9599,See #569,2019-10-02T23:22:19Z,2019-11-15T22:57:21Z,,,025b4024b1b43ea034b7fd331c30740165ff75f2,,,0,32cbfd2acd28bcefb97c442ac8e3ee2c07401e19,a9909c29ccac771c23c2ef22b89d10697b5256b9,OWNER,107914493,https://github.com/simonw/datasette/pull/579,, 329890320,MDExOlB1bGxSZXF1ZXN0MzI5ODkwMzIw,599,closed,0,Fix for /foo v.s. /foo-bar issue in #597,9599,Refs #597,2019-10-18T19:22:55Z,2019-10-18T22:51:07Z,2019-10-18T22:51:07Z,2019-10-18T22:51:07Z,b647b5efc29300f715ba656e41b0591f342938e1,,,0,8cc5a8dc35371f7d4353a4206b2d079f520c61cd,b6ad1fdc7068cb8248787843e7438d1f19fa2e3a,OWNER,107914493,https://github.com/simonw/datasette/pull/599,, 329947180,MDExOlB1bGxSZXF1ZXN0MzI5OTQ3MTgw,601,closed,0,Don't auto-format SQL on page load,9599,Refs #600,2019-10-18T22:37:39Z,2019-10-20T02:29:49Z,2019-10-18T23:56:45Z,2019-10-18T23:56:45Z,e877b1cb12076946fdbec7ca2fbfbfc75c1c2a28,,,0,3a963734590caa3ad69bfe64c31690f3e4de61a4,b6ad1fdc7068cb8248787843e7438d1f19fa2e3a,OWNER,107914493,https://github.com/simonw/datasette/pull/601,, 334448258,MDExOlB1bGxSZXF1ZXN0MzM0NDQ4MjU4,609,closed,0,Update to latest black,9599,,2019-10-30T18:42:35Z,2019-10-30T18:49:01Z,2019-10-30T18:49:01Z,2019-10-30T18:49:01Z,5dd4d2b2d3abcfd507a6df47e7c2fbad3c552fd8,,,0,6f57e5e77bac29ac88d51271fd0c785859a820ce,f4c0830529a9513a83437a9e1550bbe27ebc5c64,OWNER,107914493,https://github.com/simonw/datasette/pull/609,, 339236647,MDExOlB1bGxSZXF1ZXN0MzM5MjM2NjQ3,623,closed,0,Test against Python 3.8 in Travis,9599,Needed for #622,2019-11-11T03:24:54Z,2019-11-11T03:45:35Z,2019-11-11T03:45:35Z,2019-11-11T03:45:35Z,1c063fae9dba70f70244db010d55a18846640f07,,,0,877dda2d287ed3b1772f051dffd295a69c3ecd27,28c4a6db5b5e512db630d7ba6127196185de67c7,OWNER,107914493,https://github.com/simonw/datasette/pull/623,, 339244888,MDExOlB1bGxSZXF1ZXN0MzM5MjQ0ODg4,624,closed,0,Bump pint to 0.9,9599,,2019-11-11T04:07:07Z,2019-11-11T04:19:02Z,2019-11-11T04:19:02Z,2019-11-11T04:19:02Z,42ee3e16a9ba7cc513b8da944cc1609a5407cf42,,,0,ed17117a2ad675cbf2430f28069bb1854846a6f0,1c063fae9dba70f70244db010d55a18846640f07,OWNER,107914493,https://github.com/simonw/datasette/pull/624,, 339722790,MDExOlB1bGxSZXF1ZXN0MzM5NzIyNzkw,627,closed,0,"Support Python 3.8, stop supporting Python 3.5",9599,Refs #622,2019-11-12T04:36:33Z,2020-04-05T10:23:58Z,2019-11-12T05:09:12Z,2019-11-12T05:09:12Z,cf7776d36fbacefa874cbd6e5fcdc9fff7661203,,,0,18cc795b5c6ec9223a5cbc4f30b19710c17f7eaa,42ee3e16a9ba7cc513b8da944cc1609a5407cf42,OWNER,107914493,https://github.com/simonw/datasette/pull/627,, 339742432,MDExOlB1bGxSZXF1ZXN0MzM5NzQyNDMy,630,closed,0,Use python:3.8 base Docker image,9599,Closes #629,2019-11-12T06:02:37Z,2019-11-12T06:03:10Z,2019-11-12T06:03:10Z,2019-11-12T06:03:10Z,d977fbadf70a96bf2eea1407d01f99d98e092dec,,,0,53180ec09483bd4eef00346a39b302aeb3039e7d,f554be39fc14ddc18921ca29d3920d55aad03d46,OWNER,107914493,https://github.com/simonw/datasette/pull/630,, 340743220,MDExOlB1bGxSZXF1ZXN0MzQwNzQzMjIw,635,closed,0,Use Jinja async mode,9599,Refs #628. Still needs documentation.,2019-11-14T01:20:57Z,2019-11-14T23:14:23Z,2019-11-14T23:14:23Z,2019-11-14T23:14:22Z,8c642f04e0608bf537fdd1f76d64c2367fb04d57,,,0,0e8f8be1dbf89a6f689a5eea4a0534199a0028f6,b51f258d00bb3c3b401f15d46a1fbd50394dbe1c,OWNER,107914493,https://github.com/simonw/datasette/pull/635,, 368734500,MDExOlB1bGxSZXF1ZXN0MzY4NzM0NTAw,663,closed,0,"-p argument for datasette package, plus tests - refs #661",9599,,2020-01-29T19:47:49Z,2020-01-29T22:46:43Z,2020-01-29T22:46:43Z,2020-01-29T22:46:43Z,67fc9c5720ed1fcd62b116481f70d4e80b403a22,,,0,8adfc9db7f15e36fed677be4a9c833ff2cdec0bc,34d77d780f68b778fd9d6ebbaf69f250436f055f,OWNER,107914493,https://github.com/simonw/datasette/pull/663,, 370675007,MDExOlB1bGxSZXF1ZXN0MzcwNjc1MDA3,664,closed,0,Datasette.render_template() method,9599,Refs #577,2020-02-04T06:53:59Z,2020-02-04T20:26:18Z,2020-02-04T20:26:18Z,2020-02-04T20:26:18Z,70b915fb4bc214f9d064179f87671f8a378aa127,,,0,19d4406f562aca291fef04363802093672620220,286ed286b68793532c2a38436a08343b45cfbc91,OWNER,107914493,https://github.com/simonw/datasette/pull/664,, 375180832,MDExOlB1bGxSZXF1ZXN0Mzc1MTgwODMy,672,open,0,--dirs option for scanning directories for SQLite databases,9599,Refs #417.,2020-02-14T02:25:52Z,2020-03-27T01:03:53Z,,,0e0e544f1f23451f04d7ca576ace5b18ce168e6f,,,0,ee718b98b793df2a15b125cbf20816c9864bf7e9,6aa516d82dea9885cb4db8d56ec2ccfd4cd9b840,OWNER,107914493,https://github.com/simonw/datasette/pull/672,, 379192258,MDExOlB1bGxSZXF1ZXN0Mzc5MTkyMjU4,683,closed,0,.execute_write() and .execute_write_fn() methods on Database,9599,"See #682 - [x] Come up with design for `.execute_write()` and `.execute_write_fn()` - [x] Build some quick demo plugins to exercise the design - [x] Write some unit tests - [x] Write the documentation",2020-02-24T19:51:58Z,2020-05-30T18:40:20Z,2020-02-25T04:45:08Z,2020-02-25T04:45:08Z,a093c5f79fa034a97d2ad8b606745dd3b80365af,,3268330,0,ec6e2edfe18446c9d77e3f30efbc299d27ea5c1b,411056c4c43e74f2b3d0e3bc1175e7998516b1b3,OWNER,107914493,https://github.com/simonw/datasette/pull/683,, 379378780,MDExOlB1bGxSZXF1ZXN0Mzc5Mzc4Nzgw,686,closed,0,?_searchmode=raw option,9599,Closes #676,2020-02-25T05:45:50Z,2020-02-25T05:56:09Z,2020-02-25T05:56:04Z,2020-02-25T05:56:04Z,6cb65555f46456eb31b62e855e21b1d8c809b1a2,,,0,abc782cb342c21b565142e44e70502e61ac6756b,a093c5f79fa034a97d2ad8b606745dd3b80365af,OWNER,107914493,https://github.com/simonw/datasette/pull/686,, 381666777,MDExOlB1bGxSZXF1ZXN0MzgxNjY2Nzc3,688,closed,0,Don't count rows on homepage for DBs > 100MB,9599,Closes #649.,2020-02-29T01:01:06Z,2020-02-29T01:08:30Z,2020-02-29T01:08:29Z,2020-02-29T01:08:29Z,7f5a330377fd7db1f6d1efa5686d183bcaf89217,,,0,025fdd46f77822c0cbeb7856611c0a65a9b83057,0f8e91c68f2d2ad48efc8324b12762bf8b58facd,OWNER,107914493,https://github.com/simonw/datasette/pull/688,, 391924509,MDExOlB1bGxSZXF1ZXN0MzkxOTI0NTA5,703,closed,0,WIP implementation of writable canned queries,9599,Refs #698.,2020-03-21T22:23:51Z,2020-06-03T00:08:14Z,2020-06-02T23:57:35Z,,80c5a74a947e63673389604de12e80fa27305454,,,1,61e40e917efc43a8aea5298a22badbb6eaea3fa1,89c4ddd4828623888e91a1d2cb396cba12d4e7b4,OWNER,107914493,https://github.com/simonw/datasette/pull/703,, 393274433,MDExOlB1bGxSZXF1ZXN0MzkzMjc0NDMz,708,closed,0,"base_url configuration setting, refs #394",9599,Pull request implementing #394,2020-03-24T21:52:00Z,2020-03-25T00:18:44Z,2020-03-25T00:18:44Z,2020-03-25T00:18:44Z,7656fd64d8b6a32ebc34d89c1b8711cc5ea240f7,,5234079,0,b1f953b5de1bef239ddb1d133f9b2e19f8e3438a,a498d0fe6590f9bdbc4faf9e0dd5faeb3b06002c,OWNER,107914493,https://github.com/simonw/datasette/pull/708,, 397749653,MDExOlB1bGxSZXF1ZXN0Mzk3NzQ5NjUz,714,closed,0,--metadata accepts YAML as well as JSON,9599,Refs #713. Still needs tests and documentation.,2020-04-02T18:36:02Z,2020-04-02T19:30:54Z,2020-04-02T19:30:54Z,2020-04-02T19:30:54Z,6717c719dd36dc2adc0f9da38a8c8e08129e96b4,,,0,5170c31adc44f6ef14b21782ba6f8ecb46dd9450,2aaad72789c427875426673c1a43e67c86fc970e,OWNER,107914493,https://github.com/simonw/datasette/pull/714,, 409123897,MDExOlB1bGxSZXF1ZXN0NDA5MTIzODk3,737,closed,0,"Custom pages mechanism, refs #648",9599,"Refs #648. TODO: - [x] Pass a `view_name` to `render_template()` - [x] Mechanism for custom status code / headers / redirect - [x] Documentation",2020-04-26T17:31:41Z,2020-04-26T18:46:43Z,2020-04-26T18:46:43Z,2020-04-26T18:46:43Z,304e7b1d9fd904ae1c35600bc03662eb90eeeae0,,,0,b5bbf1bd88f67a26eb34902bc11f2da7692c7af2,227bb3e91fe34811a9374150798643a5af98ed79,OWNER,107914493,https://github.com/simonw/datasette/pull/737,, 409153870,MDExOlB1bGxSZXF1ZXN0NDA5MTUzODcw,739,closed,0,Configuration directory mode,9599,"Refs #731 TODO: - [x] Decide how to combine explicit command-line options with items detected from the directory structure - [x] Add unit tests - [x] Implement `inspect-data.json` mechanism for populating `immutables` - [x] Add documentation",2020-04-26T20:37:46Z,2020-04-27T16:30:25Z,2020-04-27T16:30:25Z,2020-04-27T16:30:25Z,25014ca25eb70b4c1217558ebd14db2845973bfb,,,0,0d8fa53fab672fcf16b6a75aa55b07ccd243fb96,1b7b66c465e44025ec73421bd69752e42f108321,OWNER,107914493,https://github.com/simonw/datasette/pull/739,, 410469272,MDExOlB1bGxSZXF1ZXN0NDEwNDY5Mjcy,746,closed,0,"shutil.Error, not OSError",9599,Refs #744,2020-04-29T03:30:51Z,2020-04-29T07:07:24Z,2020-04-29T07:07:23Z,,e4e8b51b50e51b2515c6d8874d16c4607f79b80a,,,0,af3a5b91503f5d74aa111bbcd1ee531ee00f9ed7,89c4ddd4828623888e91a1d2cb396cba12d4e7b4,OWNER,107914493,https://github.com/simonw/datasette/pull/746,, 415286105,MDExOlB1bGxSZXF1ZXN0NDE1Mjg2MTA1,763,closed,0,Documentation + improvements for db.execute() and Results class,9599,"Refs #685 Still TODO: - [x] Implement `results.first()` - [x] Implement `results.single_value()` - [x] Unit tests for the above ",2020-05-08T15:16:02Z,2020-06-11T16:05:48Z,2020-05-08T16:05:46Z,2020-05-08T16:05:46Z,4433306c1855ad69840cc76cbd41086137572be2,,,0,1ea62c77221d07cd121367f1c6b620f8bde0716a,69e3a855dd7e5a77409d70b18c45ae3c1a145a75,OWNER,107914493,https://github.com/simonw/datasette/pull/763,, 421491810,MDExOlB1bGxSZXF1ZXN0NDIxNDkxODEw,768,closed,0,Use dirs_exist_ok=True,9599,Refs #744,2020-05-21T17:53:44Z,2020-05-27T20:21:56Z,2020-05-21T17:53:51Z,2020-05-21T17:53:51Z,cee671a58f417f827d1735b1abaa40716534ea67,,5471110,0,f2e0a558238a34dc482803762de2509474a178c6,faea5093b865031f650da7da6539430f732f511a,OWNER,107914493,https://github.com/simonw/datasette/pull/768,, 424032445,MDExOlB1bGxSZXF1ZXN0NDI0MDMyNDQ1,769,closed,0,Backport of Python 3.8 shutil.copytree,9599,Closes #744,2020-05-27T18:17:15Z,2020-05-27T20:21:56Z,2020-05-27T18:17:44Z,2020-05-27T18:17:44Z,2d099ad9c657d2cab59de91cdb8bfed2da236ef6,,5471110,0,6f80757f27e4651e6533856ea87b676dbc0d9c37,cee671a58f417f827d1735b1abaa40716534ea67,OWNER,107914493,https://github.com/simonw/datasette/pull/769,, 424085264,MDExOlB1bGxSZXF1ZXN0NDI0MDg1MjY0,772,closed,0,Test that plugin hooks are unit tested,9599,Refs #771,2020-05-27T20:01:32Z,2020-05-27T20:21:56Z,2020-05-27T20:16:03Z,2020-05-27T20:16:02Z,da87e963bff24e47878a5bc2025c8bfc63d4bc93,,5471110,0,173b6947521f1c1b47a119f62f379bf4278c87c9,41a0cd7b6afe0397efbbf27ad822679fc574811a,OWNER,107914493,https://github.com/simonw/datasette/pull/772,, 425531205,MDExOlB1bGxSZXF1ZXN0NDI1NTMxMjA1,783,closed,0,Authentication: plugin hooks plus default --root auth mechanism,9599,See #699,2020-05-30T22:25:47Z,2020-06-01T01:16:44Z,2020-06-01T01:16:43Z,2020-06-01T01:16:43Z,57cf5139c552cb7feab9947daa949ca434cc0a66,,,0,116a26ce2d4af26c928e361e1b24dd6a6bb14eca,c4fbe50676929b512940aab90de590a78ac5d7fc,OWNER,107914493,https://github.com/simonw/datasette/pull/783,, 426891471,MDExOlB1bGxSZXF1ZXN0NDI2ODkxNDcx,796,closed,0,New WIP writable canned queries,9599,"Refs #698. Replaces #703 Still todo: - [x] Unit tests - ~~Figure out `.json` mode~~ - [x] Flash message solution - ~~CSRF protection~~ - [x] Better error message display on errors - [x] Documentation - ~~Maybe widgets?~~ I'll do these later",2020-06-03T00:08:00Z,2020-06-03T15:16:52Z,2020-06-03T15:16:50Z,2020-06-03T15:16:50Z,aa82d0370463580f2cb10d9617f1bcbe45cc994a,,3268330,0,e164939de719b5930ca4972e20490c9b2fd37f6d,9690ce606823bbfceb0c50d59e03adf7bb1a8475,OWNER,107914493,https://github.com/simonw/datasette/pull/796,, 428212421,MDExOlB1bGxSZXF1ZXN0NDI4MjEyNDIx,798,closed,0,CSRF protection,9599,Refs #793,2020-06-05T04:22:35Z,2020-06-06T00:43:41Z,2020-06-05T19:05:58Z,2020-06-05T19:05:57Z,84a9c4ff75460f91c049bd30bba3cee1fd89d9e2,,5512395,0,fe43963376b1c44ec23a213277bcb33d98e4aef9,d96ac1d52cacf34bae09705eb8f9a0e3f81c426b,OWNER,107914493,https://github.com/simonw/datasette/pull/798,, 429366641,MDExOlB1bGxSZXF1ZXN0NDI5MzY2NjQx,803,closed,0,Canned query permissions,9599,Refs #800. Closes #786,2020-06-06T18:20:00Z,2020-06-06T19:40:21Z,2020-06-06T19:40:20Z,2020-06-06T19:40:20Z,415ccd7cbdeebfb52f514a0387221023aa8b4d91,,,0,3359d54a4eb9c9725c27a85437661b5180c4099a,9c563d6aed072f14d3d25f58e84659f9caa1a243,OWNER,107914493,https://github.com/simonw/datasette/pull/803,, 429613893,MDExOlB1bGxSZXF1ZXN0NDI5NjEzODkz,809,closed,0,Publish secrets,9599,Refs #787. Will need quite a bit of manual testing since this involves code which runs against Heroku and Cloud Run.,2020-06-07T02:00:31Z,2020-06-11T16:02:13Z,2020-06-11T16:02:03Z,2020-06-11T16:02:03Z,98632f0a874b7b9dac6abf0abb9fdb7e2839a4d3,,5512395,0,abdac31328646705a957d58429b88d185ef43ded,ce4958018ede00fbdadf0c37a99889b6901bfb9b,OWNER,107914493,https://github.com/simonw/datasette/pull/809,, 431478724,MDExOlB1bGxSZXF1ZXN0NDMxNDc4NzI0,819,closed,0,register_routes() plugin hook,9599,Refs #215,2020-06-09T01:20:44Z,2020-06-09T03:12:08Z,2020-06-09T03:12:07Z,2020-06-09T03:12:07Z,f5e79adf26d0daa3831e3fba022f1b749a9efdee,,5512395,0,18127f074efc1b0148d1098da063e51ccea7797c,647c5ff0f3e8140f40d7f41f0874ce4e1f4df65c,OWNER,107914493,https://github.com/simonw/datasette/pull/819,, 434055752,MDExOlB1bGxSZXF1ZXN0NDM0MDU1NzUy,844,closed,0,Action to run tests and upload coverage report,9599,Refs #843,2020-06-13T20:52:47Z,2020-06-13T21:36:52Z,2020-06-13T21:36:50Z,2020-06-13T21:36:50Z,cf7a2bdb404734910ec07abc7571351a2d934828,,,0,1210d9f41841bdca450f85a2342cdb0ff339c1b4,80c18a18fc444b89cc12b73599d56e091f3a3c87,OWNER,107914493,https://github.com/simonw/datasette/pull/844,, 440946817,MDExOlB1bGxSZXF1ZXN0NDQwOTQ2ODE3,869,closed,0,Magic parameters for canned queries,9599,"Implementation for #842 TODO: - [x] Add tests for built-in magic parameters - [x] Magic parameters should not show up as blank form fields on the query page - [x] Update documentation for new `_request_X` (now called `_header_X`) implementation where X is a key from the ASGI scope - [x] Make sure these only work for canned queries, not for arbitrary SQL queries (security issue) - [x] Add test for the `register_magic_parameters` plugin hook - [x] Add documentation for the `register_magic_parameters` plugin hook ",2020-06-27T18:37:21Z,2020-06-28T02:58:18Z,2020-06-28T02:58:17Z,2020-06-28T02:58:17Z,563f5a2d3ab30ad08daee38f5ec3ed6429ac9206,,5533512,0,9e693a7aae3b4a0882881e3a1c182e1c0c753efd,4b142862f237f95a731cb8263a293eda70d13c82,OWNER,107914493,https://github.com/simonw/datasette/pull/869,, 466410755,MDExOlB1bGxSZXF1ZXN0NDY2NDEwNzU1,927,closed,0,"'datasette --get' option, refs #926",9599,"Refs #926, #898",2020-08-11T23:31:52Z,2020-08-12T00:24:42Z,2020-08-12T00:24:41Z,2020-08-12T00:24:41Z,e139a7619f63d45ca2ff1ee108b933e17b5675b3,,,0,2111da01a03cfc62303b6a4b59ea9f96d22c0f78,83eda049af3f38d4289118d3576f96b2535084b1,OWNER,107914493,https://github.com/simonw/datasette/pull/927,, 468370658,MDExOlB1bGxSZXF1ZXN0NDY4MzcwNjU4,936,closed,0,Don't hang in db.execute_write_fn() if connection fails,9599,Refs #935,2020-08-15T22:20:12Z,2020-08-15T22:35:33Z,2020-08-15T22:35:32Z,2020-08-15T22:35:32Z,b86f94883b1d827f85b07009e8346b8e9c6eeefa,,,0,94a68b95a21f29526d66e88bf5ea524a3efcc609,13b3b51087964d5e1a8c1cdd2495e07bdbe176b8,OWNER,107914493,https://github.com/simonw/datasette/pull/936,, 468377212,MDExOlB1bGxSZXF1ZXN0NDY4Mzc3MjEy,937,closed,0,Docs now live at docs.datasette.io,9599,,2020-08-15T23:53:52Z,2020-08-15T23:57:06Z,2020-08-15T23:57:05Z,2020-08-15T23:57:05Z,41ddc197561ac2d2a1bb988956c301a523c6ca35,,,0,ff2605af65e023564cd7b57382b116e94b9d4f16,af12f45c2b0e4782ca92c2d00481dc47ccb7a046,OWNER,107914493,https://github.com/simonw/datasette/pull/937,, 468484031,MDExOlB1bGxSZXF1ZXN0NDY4NDg0MDMx,941,closed,0,"Run CI on GitHub Actions, not Travis",9599,Refs #940,2020-08-16T19:13:39Z,2020-08-18T05:09:36Z,2020-08-18T05:09:35Z,2020-08-18T05:09:35Z,5e0b72247ecab4ce0fcec599b77a83d73a480872,,,0,f5a72e11b632b01acc41c07f6f4cfffa1a7ed14e,52eabb019d4051084b21524bd0fd9c2731126985,OWNER,107914493,https://github.com/simonw/datasette/pull/941,, 498104830,MDExOlB1bGxSZXF1ZXN0NDk4MTA0ODMw,994,closed,0,Run tests against Python 3.9,9599,,2020-10-05T20:40:13Z,2020-10-09T16:22:51Z,2020-10-09T16:22:50Z,2020-10-09T16:22:50Z,6e091b14b651d67e0ff41a353d36bbeb1d8ba235,,,0,ecba5d257ef4218a98b5903d856a4d7c0382f43d,e807c4eac0e85ae15e013379b0dde1d797f1377d,OWNER,107914493,https://github.com/simonw/datasette/pull/994,, 500256485,MDExOlB1bGxSZXF1ZXN0NTAwMjU2NDg1,1000,closed,0,datasette.client internal requests mechanism,9599,Refs #943,2020-10-08T23:58:25Z,2020-10-09T16:11:26Z,2020-10-09T16:11:25Z,2020-10-09T16:11:25Z,8f97b9b58e77f82fef1f10e9c9f6754b993544b6,9599,5971510,0,8a80c79deb640bc1a1864132a3564ccca59e8858,7249ac5ca04b5ddc6517750326ee7e522cc49145,OWNER,107914493,https://github.com/simonw/datasette/pull/1000,, 507903392,MDExOlB1bGxSZXF1ZXN0NTA3OTAzMzky,1040,closed,0,/db/table/-/blob/pk/column.blob download URL,9599,"Refs #1036. Still needs: - [x] Comprehensive tests across all of the code branches, plus permissions - [x] A bit more refactoring to share logic cleanly with `RowView` - ~~A configuration option to disable this feature (probably)~~",2020-10-21T22:39:15Z,2020-10-24T23:09:20Z,2020-10-24T23:09:19Z,2020-10-24T23:09:19Z,5a1519796037105bc20bcf2f91a76e022926c204,,6026070,0,4f3165f25fd9241fcf1291c797f4c77766b954dc,bf82b3d6a605c9ddadd5fb739249dfe6defaf635,OWNER,107914493,https://github.com/simonw/datasette/pull/1040,, 511005542,MDExOlB1bGxSZXF1ZXN0NTExMDA1NTQy,1056,closed,0,"Radical new colour scheme and base styles, courtesy of @natbat",9599,,2020-10-27T19:31:48Z,2020-10-27T19:39:57Z,2020-10-27T19:39:56Z,2020-10-27T19:39:56Z,e5f5034bcdc71e4bc62a6a155ca60eb41910c335,,6026070,0,a7b2aabd5148c0ee382b583de68a4f0538f7dfb1,26bb4a268127da2c38f4241abe45444b2a6f7874,OWNER,107914493,https://github.com/simonw/datasette/pull/1056,, 511868153,MDExOlB1bGxSZXF1ZXN0NTExODY4MTUz,1060,closed,0,New explicit versioning mechanism,9599,"- Remove all references to versioneer - Re-implement versioning to use a static string baked into the repo - Ensure that string is output by `datasette --version` and `/-/versions` Refs #1054",2020-10-28T22:14:55Z,2020-10-29T03:38:17Z,2020-10-29T03:38:16Z,2020-10-29T03:38:16Z,cefd058c1c216a184bb63c79abba66893977c18e,,6026070,0,4725d46780783e9875bde5957f053ba19cf92ff0,abcf0222496d8148b2e585ffa0ff192270a04b06,OWNER,107914493,https://github.com/simonw/datasette/pull/1060,, 512545364,MDExOlB1bGxSZXF1ZXN0NTEyNTQ1MzY0,1061,closed,0,.blob output renderer,9599,"- [x] Remove the `/-/...blob/...` route I added in #1040 in place of the new `.blob` renderer URLs - [x] Link to new `.blob` download links on the arbitrary query page (using `_blob_hash=...`) - plus tests for this Closes #1050, Closes #1051",2020-10-29T20:25:08Z,2020-10-29T22:01:40Z,2020-10-29T22:01:39Z,2020-10-29T22:01:39Z,78b3eeaad9189eb737014f53212082684f4bb0d4,,6026070,0,1196d084de6a7a6f68c7705a6cc096bb8df132e3,d6f9ff71378c4eab34dad181c23cfc143a4aef2d,OWNER,107914493,https://github.com/simonw/datasette/pull/1061,, 512736705,MDExOlB1bGxSZXF1ZXN0NTEyNzM2NzA1,1065,closed,0,Nav menu plus menu_links() hook,9599,"Closes #1064, refs #690.",2020-10-30T03:40:18Z,2020-10-30T03:45:17Z,2020-10-30T03:45:16Z,2020-10-30T03:45:16Z,18a64fbb29271ce607937110bbdb55488c43f4e0,,6026070,0,5f118b56afbeff5348acd50a8b87537210e731ee,1a861be19e326e0c88230a711a1b6536366697d7,OWNER,107914493,https://github.com/simonw/datasette/pull/1065,, 513106026,MDExOlB1bGxSZXF1ZXN0NTEzMTA2MDI2,1069,closed,0,load_template() plugin hook,9599,Refs #1042,2020-10-30T15:59:45Z,2020-10-30T17:47:20Z,2020-10-30T17:47:19Z,2020-10-30T17:47:19Z,81dea4b07ab2b6f4eaaf248307d2b588472054a1,,6026070,0,92f3840882a24da29d0d4073e5ed9d77fce438fc,fcf43589eb6a1f1d0432772a639fd35711c48e0c,OWNER,107914493,https://github.com/simonw/datasette/pull/1069,, 518988879,MDExOlB1bGxSZXF1ZXN0NTE4OTg4ODc5,1085,closed,0,Use FTS4 in fixtures,9599,Refs #1081,2020-11-11T06:44:30Z,2020-11-12T00:02:59Z,2020-11-12T00:02:58Z,2020-11-12T00:02:58Z,e8e0a6f284ca953b2980186c4356594c07bd1929,,,0,51e7651c66aaf1804274ce68a6b5218bbba76338,2a981e2ac1d13125973904b777d00ea75e8df4e6,OWNER,107914493,https://github.com/simonw/datasette/pull/1085,, 521276296,MDExOlB1bGxSZXF1ZXN0NTIxMjc2Mjk2,1097,closed,0,Use f-strings,9599,"Since Datasette now requires Python 3.6, how about some f-strings? I ran this in the `datasette` root checkout: ``` pip install flynt flynt . black . ```",2020-11-15T23:12:36Z,2020-11-15T23:24:24Z,2020-11-15T23:24:23Z,2020-11-15T23:24:23Z,30e64c8d3b3728a86c3ca42a75322cc3feb5b0c8,,,0,e89211d21eebb7a2e4588b06927da84416e3a555,6fd35be64de221eba4945ca24e8e1678f6142a73,OWNER,107914493,https://github.com/simonw/datasette/pull/1097,, 529783275,MDExOlB1bGxSZXF1ZXN0NTI5NzgzMjc1,1117,closed,0,Support for generated columns,9599,"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.",2020-11-30T20:10:46Z,2020-11-30T22:23:19Z,2020-11-30T21:29:58Z,2020-11-30T21:29:58Z,461670a0b87efa953141b449a9a261919864ceb3,,,0,ccdf2c650278b8b9465d3a2d7c916f3bb06c4f01,dea3c508b39528e566d711c38a467b3d372d220b,OWNER,107914493,https://github.com/simonw/datasette/pull/1117,, 529887861,MDExOlB1bGxSZXF1ZXN0NTI5ODg3ODYx,1120,closed,0,generated_columns table in fixtures.py,9599,Refs #1119,2020-12-01T00:17:19Z,2020-12-01T00:28:03Z,2020-12-01T00:28:02Z,2020-12-01T00:28:02Z,17cbbb1f7f230b39650afac62dd16476626001b5,,,0,ddad8db2cc952eaf4f66f42324ccece115627b02,461670a0b87efa953141b449a9a261919864ceb3,OWNER,107914493,https://github.com/simonw/datasette/pull/1120,, 560725714,MDExOlB1bGxSZXF1ZXN0NTYwNzI1NzE0,1203,closed,0,Easier way to run Prettier locally,9599,Refs #1167,2021-01-25T01:39:06Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,ffff3a4c5398a9f40b61d59736f386444da19289,,,0,98acc8865aa7826a40a7a076ab548ba8597af734,b6a7b58fa01af0cd5a5e94bd17d686d283a46819,OWNER,107914493,https://github.com/simonw/datasette/pull/1203,, 560760145,MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1,1204,open,0,WIP: Plugin includes,9599,"Refs #1191 Next steps: - [ ] Get comfortable that this pattern is the right way to go - [ ] Implement it for all of the other pages, not just the table page - [ ] Add a new set of plugin tests that exercise ALL of these new hook locations - [ ] Document, then ship",2021-01-25T03:59:06Z,2021-12-17T07:10:49Z,,,98f06a766317a40035962416cf3211d7a374866a,,,1,05258469ae39bcaad17beb57c5b7eeab0d58a589,07e163561592c743e4117f72102fcd350a600909,OWNER,107914493,https://github.com/simonw/datasette/pull/1204,, 560831638,MDExOlB1bGxSZXF1ZXN0NTYwODMxNjM4,1206,closed,0,Release 0.54,9599,Refs #1201,2021-01-25T06:45:47Z,2021-01-25T17:33:30Z,2021-01-25T17:33:29Z,2021-01-25T17:33:29Z,0b9ac1b2e9c855f1b823a06a898891da87c720ef,,,0,571476d2cf8f7d7eac6098de8557264e69cac43f,a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179,OWNER,107914493,https://github.com/simonw/datasette/pull/1206,, 572209243,MDExOlB1bGxSZXF1ZXN0NTcyMjA5MjQz,1222,closed,0,"--ssl-keyfile and --ssl-certfile, refs #1221",9599,,2021-02-12T00:45:58Z,2021-02-12T00:52:18Z,2021-02-12T00:52:17Z,2021-02-12T00:52:17Z,eda652cf6ee28a0babfb30ce3834512e9e33fb8e,,,0,8ec72ea3e3e0a9876d5e61e4a2260224f16db2e3,aa1fe0692c2abb901216738bfb35f9fcc5090e7d,OWNER,107914493,https://github.com/simonw/datasette/pull/1222,, 575940193,MDExOlB1bGxSZXF1ZXN0NTc1OTQwMTkz,1232,closed,0,--crossdb option for joining across databases,9599,"Refs #283. Still needs: - [x] Unit test for --crossdb queries - [x] Show warning on console if it truncates at ten databases (or on web interface) - [x] Show connected databases on the `/_memory` database page - [x] Documentation - [x] https://latest.datasette.io/ demo should demonstrate this feature",2021-02-18T19:48:50Z,2021-02-18T22:09:13Z,2021-02-18T22:09:12Z,2021-02-18T22:09:12Z,6f41c8a2bef309a66588b2875c3e24d26adb4850,,,0,887649942b02d70a0fe4e205e1e5eff4e745b016,4df548e7668b5b21d64a267964951e67894f4712,OWNER,107914493,https://github.com/simonw/datasette/pull/1232,,