home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

5 rows where "created_at" is on date 2019-07-19 and issue = 463544206 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: reactions, created_at (date), updated_at (date)

user 2

  • simonw 4
  • tomchristie 1

author_association 2

  • OWNER 4
  • NONE 1

issue 1

  • Populate "endpoint" key in ASGI scope · 5 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
513317952 https://github.com/simonw/datasette/issues/537#issuecomment-513317952 https://api.github.com/repos/simonw/datasette/issues/537 MDEyOklzc3VlQ29tbWVudDUxMzMxNzk1Mg== simonw 9599 2019-07-19T17:49:06Z 2019-07-19T17:49:06Z OWNER

It strikes me that if scope is indeed meant to stay immutable the alternative way of solving this would be to add an outbound custom request header with the endpoint - X-Endpoint: datasette.views.table.TableView for example - and teach the Sentry plugin to optionally read that.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Populate "endpoint" key in ASGI scope 463544206  
513307487 https://github.com/simonw/datasette/issues/537#issuecomment-513307487 https://api.github.com/repos/simonw/datasette/issues/537 MDEyOklzc3VlQ29tbWVudDUxMzMwNzQ4Nw== simonw 9599 2019-07-19T17:17:43Z 2019-07-19T17:17:43Z OWNER

Huh, interesting. I'd got it into my head that scope should not be mutated under any circumstances - if that's not true and it's mutable there's all kinds of useful things we could do with it.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Populate "endpoint" key in ASGI scope 463544206  
513279397 https://github.com/simonw/datasette/issues/537#issuecomment-513279397 https://api.github.com/repos/simonw/datasette/issues/537 MDEyOklzc3VlQ29tbWVudDUxMzI3OTM5Nw== tomchristie 647359 2019-07-19T15:47:57Z 2019-07-19T15:48:09Z NONE

The middleware implementation there works okay with a router nested inside if the scope is mutated. (Ie. "endpoint" doesn't need to exist at the point that the middleware starts running, but if it has been made available by the time an exception is thrown, then it can be used.)

Starlette's usage of "endpoint" there is unilateral, rather than something I've discussed against the ASGI spec - certainly it's important for any monitoring ASGI middleware to be able to have some kind of visibility onto some limited subset of routing information, and "endpoint" in the scope referencing some routed-to callable seemed general enough to be useful.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Populate "endpoint" key in ASGI scope 463544206  
513273003 https://github.com/simonw/datasette/issues/537#issuecomment-513273003 https://api.github.com/repos/simonw/datasette/issues/537 MDEyOklzc3VlQ29tbWVudDUxMzI3MzAwMw== simonw 9599 2019-07-19T15:28:42Z 2019-07-19T15:28:42Z OWNER

Asked about this on Twitter: https://twitter.com/simonw/status/1152238730259791877

{
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 1,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Populate "endpoint" key in ASGI scope 463544206  
513272392 https://github.com/simonw/datasette/issues/537#issuecomment-513272392 https://api.github.com/repos/simonw/datasette/issues/537 MDEyOklzc3VlQ29tbWVudDUxMzI3MjM5Mg== simonw 9599 2019-07-19T15:27:03Z 2019-07-19T15:27:03Z OWNER

Yeah that's a good call: the Datasette plugin mechanism where middleware is wrapped around the outside doesn't appear to be compatible with the Sentry mechanism of expecting that scope has been populated before it gets to their error handler.

@tomchristie is this something you've thought about?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Populate "endpoint" key in ASGI scope 463544206  

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
, [performed_via_github_app] TEXT);
CREATE INDEX [idx_issue_comments_issue]
                ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
                ON [issue_comments] ([user]);
Powered by Datasette · Queries took 31.467ms · About: github-to-sqlite