home / github

Menu
  • Search all tables
  • GraphQL API

issues

Table actions
  • GraphQL API for issues

1 row where user = 369053 sorted by updated_at descending

✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

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

type 1

  • issue 1

state 1

  • closed 1

repo 1

  • datasette 1
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
1117132741 I_kwDOBm6k_c5ClhfF 1615 Potential simplified publishing mechanism aidansteele 369053 closed 0     2 2022-01-28T08:34:50Z 2022-02-02T07:34:21Z 2022-02-02T07:34:17Z NONE  

Hi,

Forewarning: this idea is one I've only been thinking about for a while and it's not fully fleshed-out yet.

I love Datasette and what it stands for. I was thinking about how we could make it accessible to more people, especially those without access to credit cards required for a lot of hosting options. Or they might not feel comfortable signing up for said services.

So I was thinking I might create a service that hosts Datasette instances for folks. I'd probably stick it on AWS Lambda and limit requests to something like n/month to avoid bankrupting myself. If I did build such a hypothetical service, I was thinking I would rely on GitHub Actions to do the heavy lifting.

E.g. user johndoe creates a repo my-animals with a couple of files: dogs.csv, cats.csv and the following GitHub Actions workflow:

```yaml

.github/workflows/push.yml

on: push

this allows the publish action to use OIDC to authenticate johndoe/my-animals

permissions: id-token: write contents: read

jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/setup-python@v2

  - run: pip install sqlite-utils

  - uses: actions/checkout@v2

  - run: |
      set -eux

      sqlite-utils create-database animals.db          
      sqlite-utils insert animals.db dogs dogs.csv --csv          
      sqlite-utils insert animals.db cats cats.csv --csv

  - uses: datasette-hub/publish@v1
    with:
      db: animals.db
      metadata: meta.yml

    # this step is helpful for debugging why the
    # generated sqlite db was rejected
  - uses: actions/upload-artifact@v2
    if: failure()
    with:
      path: animals.db
      retention-days: 1

```

This would then cause a Datasette instance to be available at https://johndoe-my-animals.datasette-hub.test/. It feels like this could significantly reduce the friction to someone being able to go from data set to Datasette.

What do you think? Does this address a real need? Or am I perhaps misunderstanding the main friction points? As a bonus: it feels like this would pair well with git scraping.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1615/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed

Advanced export

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

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [pull_request] TEXT,
   [body] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
, [active_lock_reason] TEXT, [performed_via_github_app] TEXT, [reactions] TEXT, [draft] INTEGER, [state_reason] TEXT);
CREATE INDEX [idx_issues_repo]
                ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
                ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
                ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
                ON [issues] ([user]);
Powered by Datasette · Queries took 26.746ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows