home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

3 rows where "created_at" is on date 2022-10-24 and issue = 1421544654 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

user 2

  • simonw 2
  • ocdtrekkie 1

author_association 2

  • OWNER 2
  • NONE 1

issue 1

  • API to insert a single record into an existing table · 3 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
1289712350 https://github.com/simonw/datasette/issues/1851#issuecomment-1289712350 https://api.github.com/repos/simonw/datasette/issues/1851 IC_kwDOBm6k_c5M33Le simonw 9599 2022-10-24T22:28:39Z 2022-10-27T23:18:48Z OWNER

API design: (**UPDATE: this was later changed to POST /db/table/-/insert)

POST /db/table Authorization: Bearer xxx Content-Type: application/json { "row": { "id": 1, "name": "New record" } } Returns: 201 Created { "row": { "id": 1, "name": "New record" } } You can omit optional fields in the input, including the ID field. The returned object will always include all fields - and will even include rowid if your object doesn't have a primary key of its own.

I decided to use "row" as the key in both request and response, to preserve space for other future keys - one that tells you that the table has been created, for example.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
API to insert a single record into an existing table 1421544654  
1289752130 https://github.com/simonw/datasette/issues/1851#issuecomment-1289752130 https://api.github.com/repos/simonw/datasette/issues/1851 IC_kwDOBm6k_c5M4A5C ocdtrekkie 4399499 2022-10-24T23:07:30Z 2022-10-24T23:07:30Z NONE

How are you tying the bearer token to identity? I'm excited to see this feature, and since Sandstorm controls API access using the same header, it also will transparently support the API documentation here, but we strip the bearer before the request reaches the app (replacing it with our existing auth headers, of course).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
API to insert a single record into an existing table 1421544654  
1289713513 https://github.com/simonw/datasette/issues/1851#issuecomment-1289713513 https://api.github.com/repos/simonw/datasette/issues/1851 IC_kwDOBm6k_c5M33dp simonw 9599 2022-10-24T22:29:58Z 2022-10-24T22:30:15Z OWNER

Interesting open question: how should validation errors (if any) be returned?

The two forms of validation I can think of at first are:

  • Missing keys which are marked as not null in the schema
  • Keys that do not match to existing columns (if you didn't pass "alter": true, an option I am considering)
{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
API to insert a single record into an existing table 1421544654  

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 29.383ms · About: github-to-sqlite