home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

6 rows where issue = 721068929 sorted by updated_at descending

✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

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

user 1

  • simonw 6

issue 1

  • Method for datasette.client() to forward on authentication · 6 ✖

author_association 1

  • OWNER 6
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
712482504 https://github.com/simonw/datasette/issues/1020#issuecomment-712482504 https://api.github.com/repos/simonw/datasette/issues/1020 MDEyOklzc3VlQ29tbWVudDcxMjQ4MjUwNA== simonw 9599 2020-10-19T22:45:01Z 2020-10-19T22:45:01Z OWNER

I'm having trouble coming up with the syntax for this. Here's one option: python response = await datasette.client.get(path, request=request) But this feels confusing to me. We're not using the request= argument as a request - we're using it as a source of some default request values (the cookies and incoming headers, but not the path).

We're essentially combining that request with the other arguments passed to .get().

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Method for datasette.client() to forward on authentication 721068929  
712482015 https://github.com/simonw/datasette/issues/1020#issuecomment-712482015 https://api.github.com/repos/simonw/datasette/issues/1020 MDEyOklzc3VlQ29tbWVudDcxMjQ4MjAxNQ== simonw 9599 2020-10-19T22:43:24Z 2020-10-19T22:43:24Z OWNER

... unless I want to support authentication mechanisms that work based on incoming IP address instead, in which case there's an argument for copying more over from the incoming request.

Tailscale is a good example of a system where authentication based on IP address can actually work well, so this is worth doing. Also, there might be authentication mechanisms which work by setting a custom header on the incoming request (not to mention the Authorization header).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Method for datasette.client() to forward on authentication 721068929  
712481568 https://github.com/simonw/datasette/issues/1020#issuecomment-712481568 https://api.github.com/repos/simonw/datasette/issues/1020 MDEyOklzc3VlQ29tbWVudDcxMjQ4MTU2OA== simonw 9599 2020-10-19T22:41:59Z 2020-10-19T22:41:59Z OWNER

It turns out this works just fine: python response = await datasette.client.get(path, cookies=request.cookies) So I don't need a mechanism for this. I'm going to add this to the documentation instead.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Method for datasette.client() to forward on authentication 721068929  
708670392 https://github.com/simonw/datasette/issues/1020#issuecomment-708670392 https://api.github.com/repos/simonw/datasette/issues/1020 MDEyOklzc3VlQ29tbWVudDcwODY3MDM5Mg== simonw 9599 2020-10-14T21:29:22Z 2020-10-14T21:29:22Z OWNER

I should also verify (and probably unit-test) that things like the ?_trace=1 mechanism work across the internal request boundary.

/-/permissions appears to work across this boundary, but again a test would be useful confirmation.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Method for datasette.client() to forward on authentication 721068929  
708669778 https://github.com/simonw/datasette/issues/1020#issuecomment-708669778 https://api.github.com/repos/simonw/datasette/issues/1020 MDEyOklzc3VlQ29tbWVudDcwODY2OTc3OA== simonw 9599 2020-10-14T21:27:58Z 2020-10-14T21:27:58Z OWNER

Maybe these internal requests should have some kind of flag that lets the underlying code tell that it's being called internally.

One option: add a x-internal: 1 request header - and ensure that any requests from outside Datasette have that header stripped.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Method for datasette.client() to forward on authentication 721068929  
708669178 https://github.com/simonw/datasette/issues/1020#issuecomment-708669178 https://api.github.com/repos/simonw/datasette/issues/1020 MDEyOklzc3VlQ29tbWVudDcwODY2OTE3OA== simonw 9599 2020-10-14T21:26:37Z 2020-10-14T21:26:37Z OWNER

One option: add an optional request=... parameter which can be passed the current request, and will use that to populate the mock request with the exception of the bits that are passed explicitly (like the path):

python response = await datasette.client.get("/db/table.json", request=request)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Method for datasette.client() to forward on authentication 721068929  

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 286.354ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows