id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,pull_request,body,repo,type,active_lock_reason,performed_via_github_app,reactions,draft,state_reason 687711713,MDU6SXNzdWU2ODc3MTE3MTM=,955,Release updated datasette-atom and datasette-ics,9599,closed,0,,5818042,2,2020-08-28T04:55:21Z,2020-09-14T22:19:46Z,2020-09-14T22:19:46Z,OWNER,,These should release straight after Datasette 0.49 with the change from #953.,107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/955/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 679808124,MDU6SXNzdWU2Nzk4MDgxMjQ=,940,Move CI to GitHub Issues,9599,closed,0,,5818042,20,2020-08-16T19:06:08Z,2020-09-14T22:09:35Z,2020-09-14T22:09:35Z,OWNER,,"It looks like the tests take 3m33s to run in GitHub Actions, but they're taking more than 8 minutes in Travis",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/940/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 648637666,MDU6SXNzdWU2NDg2Mzc2NjY=,880,POST to /db/canned-query that returns JSON should be supported (for API clients),9599,closed,0,,5818042,11,2020-07-01T03:14:43Z,2020-09-14T21:28:21Z,2020-09-14T21:25:01Z,OWNER,,Now that CSRF is solved for API requests (#835) it would be good to support API requests to the `.json` extension.,107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/880/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 701294727,MDU6SXNzdWU3MDEyOTQ3Mjc=,965,"Documentation for 404.html, 500.html templates",9599,closed,0,,5818042,3,2020-09-14T17:36:59Z,2020-09-14T18:49:49Z,2020-09-14T18:47:22Z,OWNER,,This mechanism is not documented: https://github.com/simonw/datasette/blob/30b98e4d2955073ca2bca92ca7b3d97fcd0191bf/datasette/app.py#L1119-L1129,107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/965/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 700728217,MDU6SXNzdWU3MDA3MjgyMTc=,964,raise_404 mechanism for custom templates,9599,closed,0,,5818042,1,2020-09-14T03:22:15Z,2020-09-14T17:49:44Z,2020-09-14T17:39:34Z,OWNER,,"> Having tried this out I think it does need a `raise_404()` mechanism - which needs to be smart enough to trigger the default 404 handler without accidentally going into an infinite loop. _Originally posted by @simonw in https://github.com/simonw/datasette/issues/944#issuecomment-691788478_",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/964/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 681516976,MDU6SXNzdWU2ODE1MTY5NzY=,944,Path parameters for custom pages,9599,closed,0,,5818042,5,2020-08-19T03:25:17Z,2020-09-14T03:21:45Z,2020-09-14T02:34:58Z,OWNER,,"[Custom pages](https://docs.datasette.io/en/stable/custom_templates.html#custom-pages) let you e.g. create a `templates/pages/about.html` page and have it automatically served at `/about`. It would be useful if these pages could capture path patterns. I like the Python format string syntax for this (also used by Starlette): `/foo/bar/{slug}`. So... how about embedding those patterns in the filenames themselves? templates/pages/museums/{slug}.html Would capture any hits to `/museums/something` and use that page to serve them. ",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/944/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed