pull_requests
608 rows sorted by number
This data as json, CSV (advanced)
Suggested facets: state, milestone, draft, author_association, created_at (date), closed_at (date), merged_at (date)
updated_at (date) >30 ✖
- 2020-05-04 9
- 2021-10-13 9
- 2019-05-03 8
- 2022-03-06 7
- 2023-03-29 7
- 2021-05-22 6
- 2018-04-14 5
- 2021-03-29 5
- 2021-05-19 5
- 2022-07-18 5
- 2022-09-06 5
- 2022-12-28 5
- 2023-05-08 5
- 2019-11-11 4
- 2020-10-12 4
- 2021-11-30 4
- 2022-08-27 4
- 2022-09-05 4
- 2023-08-07 4
- 2023-08-29 4
- 2023-09-06 4
- 2023-11-04 4
- 2017-11-17 3
- 2019-05-04 3
- 2019-07-03 3
- 2019-09-03 3
- 2019-10-14 3
- 2019-11-12 3
- 2019-11-13 3
- 2020-05-27 3
- …
id | node_id | number ▼ | state | locked | title | user | body | created_at | updated_at | closed_at | merged_at | merge_commit_sha | assignee | milestone | draft | head | base | author_association | repo | url | merged_by | auto_merge |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
205770996 | MDExOlB1bGxSZXF1ZXN0MjA1NzcwOTk2 | 1 | closed | 0 | Make .indexes compatible with older SQLite versions | simonw 9599 | Older SQLite versions return a different set of columns from the PRAGMA we are using. | 2018-08-02T15:17:05Z | 2018-08-02T15:17:30Z | 2018-08-02T15:17:30Z | 2018-08-02T15:17:30Z | 741e8f7fe563e18fe9a12ac1ce38157e8c903505 | 0 | 9e674311065b8372f0a93becc8e7357ceffd353b | 0aa28293adedc488eb9107dc52b5e9a124887fbd | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/1 | ||||
338647378 | MDExOlB1bGxSZXF1ZXN0MzM4NjQ3Mzc4 | 1 | closed | 0 | Add parkrun-to-sqlite | mrw34 1101318 | 2019-11-08T12:05:32Z | 2020-10-12T00:35:16Z | 2020-10-12T00:35:16Z | 2020-10-12T00:35:16Z | 58ca0c785fbf34250042379dd0269bf2d0c5ea7e | 0 | ccb86548e0ae6f02a83f1feb0974476ad0f2f2d8 | 2972bb001ab5f675eced62f7ba5adef2d3eba2ad | CONTRIBUTOR | dogsheep.github.io 214746582 | https://github.com/dogsheep/dogsheep.github.io/pull/1 | |||||
357974326 | MDExOlB1bGxSZXF1ZXN0MzU3OTc0MzI2 | 3 | closed | 0 | Add todoist-to-sqlite | bcongdon 706257 | Really enjoying getting into the dogsheep/datasette ecosystem. I made a downloader for Todoist, and I think/hope others might find this useful | 2019-12-30T04:02:59Z | 2020-10-12T00:35:58Z | 2020-10-12T00:35:57Z | 2020-10-12T00:35:57Z | 85af27dbff7e08a92656639fbf0cfa15c7d30b5c | 0 | 49bc87a43555d10696044e8e40d700d93611a190 | 58ca0c785fbf34250042379dd0269bf2d0c5ea7e | CONTRIBUTOR | dogsheep.github.io 214746582 | https://github.com/dogsheep/dogsheep.github.io/pull/3 | ||||
247576942 | MDExOlB1bGxSZXF1ZXN0MjQ3NTc2OTQy | 4 | closed | 0 | Fts5 | simonw 9599 | 2019-01-25T06:54:05Z | 2019-01-25T06:54:33Z | 2019-01-25T06:54:33Z | 2019-01-25T06:54:33Z | 42b2b4b785e3163371e92a9cc085bc47e7c83107 | 0 | 7f205d2308443557bcaec497b3d0badc0dc26f06 | ccb2a1e729780689188005a52c362b7e963f71e8 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/4 | |||||
370024697 | MDExOlB1bGxSZXF1ZXN0MzcwMDI0Njk3 | 4 | closed | 0 | Add beeminder-to-sqlite | bcongdon 706257 | 2020-02-02T15:51:36Z | 2020-10-12T00:36:16Z | 2020-10-12T00:36:16Z | 2020-10-12T00:36:16Z | 7e4c6ecdabc249c77e8049cd172b1b5af08a3371 | 0 | 6713b5c50178b95a9ec50227d4ef5793e71e8b0a | 2972bb001ab5f675eced62f7ba5adef2d3eba2ad | CONTRIBUTOR | dogsheep.github.io 214746582 | https://github.com/dogsheep/dogsheep.github.io/pull/4 | |||||
247861419 | MDExOlB1bGxSZXF1ZXN0MjQ3ODYxNDE5 | 5 | closed | 0 | Run Travis tests against Python 3.8-dev | simonw 9599 | 2019-01-26T02:30:55Z | 2019-01-26T02:37:54Z | 2019-01-26T02:37:54Z | 2019-01-26T02:37:54Z | 3a944d0c077c203277f13dd69387eb84b5c88d3e | 0 | b2f81e86074526d6e4dc9e39e791deff195669de | 9a4d1ff0a268c7df7839389acd92d48752d24b95 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/5 | |||||
505076418 | MDExOlB1bGxSZXF1ZXN0NTA1MDc2NDE4 | 5 | open | 0 | Add fitbit-to-sqlite | mrphil007 4632208 | 2020-10-16T20:04:05Z | 2020-10-16T20:04:05Z | 9b9a677a4fcb6a31be8c406b3050cfe1c6e7e398 | 0 | db64d60ee92448b1d2a7e190d9da20eb306326b0 | d0686ebed6f08e9b18b4b96c2b8170e043a69adb | FIRST_TIME_CONTRIBUTOR | dogsheep.github.io 214746582 | https://github.com/dogsheep/dogsheep.github.io/pull/5 | |||||||
577953727 | MDExOlB1bGxSZXF1ZXN0NTc3OTUzNzI3 | 5 | open | 0 | WIP: Add Gmail takeout mbox import | UtahDave 306240 | WIP This PR adds the ability to import emails from a Gmail mbox export from Google Takeout. This is my first PR to a datasette/dogsheep repo. I've tested this on my personal Google Takeout mbox with ~520,000 emails going back to 2004. This took around ~20 minutes to process. To provide some feedback on the progress of the import I added the "rich" python module. I'm happy to remove that if adding a dependency is discouraged. However, I think it makes a nice addition to give feedback on the progress of a long import. Do we want to log emails that have errors when trying to import them? Dealing with encodings with emails is a bit tricky. I'm very open to feedback on how to deal with those better. As well as any other feedback for improvements. | 2021-02-22T21:30:40Z | 2021-07-28T07:18:56Z | 65182811d59451299e75f09b4366bb221bc32b20 | 0 | a3de045eba0fae4b309da21aa3119102b0efc576 | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/5 | ||||||
1038926741 | PR_kwDODtX3eM497MOV | 5 | open | 0 | The program fails when the user has no submissions | fernand0 2467 | Tested with: hacker-news-to-sqlite user hacker-news.db fernand0 Result: ` Traceback (most recent call last): File "/home/ftricas/.pyenv/versions/3.10.6/bin/hacker-news-to-sqlite", line 8, in <module> sys.exit(cli()) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/hacker_news_to_sqlite/cli.py", line 27, in user submitted = user.pop("submitted", None) or [] AttributeError: 'NoneType' object has no attribute 'pop' ` There is a problem of style with the patch (but not sure what to do) because with the new inicialization ( submitted = []) the part or [] is not needed. Maybe there is a more adequate way of doing this. | 2022-08-28T17:25:45Z | 2022-08-28T17:25:45Z | f0d7414305fc6cba4bcb7506b76a94938ccc7886 | 0 | ea97e640ad7a24020821fde5c647240120bd7099 | c5585c103d124b23ba1e163f8857d4ba49fe452a | FIRST_TIME_CONTRIBUTOR | hacker-news-to-sqlite 248903544 | https://github.com/dogsheep/hacker-news-to-sqlite/pull/5 | ||||||
357640186 | MDExOlB1bGxSZXF1ZXN0MzU3NjQwMTg2 | 6 | closed | 0 | don't break if source is missing | mfa 78035 | broke for me. very old checkins in 2010 had no source set. | 2019-12-29T10:46:47Z | 2020-03-28T02:28:11Z | 2020-03-28T02:28:11Z | 2020-03-28T02:28:11Z | d3c4ab2848ea606417150f377a82e66ca7887c54 | 0 | a41b5bcd63012f64fe6746825d7101cc3d071483 | f2c89dd613fb8a7f14e5267ccc2145463b996190 | CONTRIBUTOR | swarm-to-sqlite 205429375 | https://github.com/dogsheep/swarm-to-sqlite/pull/6 | ||||
602261092 | MDExOlB1bGxSZXF1ZXN0NjAyMjYxMDky | 6 | closed | 0 | Add testres-db tool | ligurio 1151557 | 2021-03-28T15:43:23Z | 2022-02-16T05:12:05Z | 2022-02-16T05:12:05Z | eceb016506b5db29b9c21bc7fcf5e6e77259c7b4 | 0 | 91cfa6f7dcab032e2d21e80657c81e69119e2018 | 92c6bb77629feeed661c7b8d9183a11367de39e0 | NONE | dogsheep.github.io 214746582 | https://github.com/dogsheep/dogsheep.github.io/pull/6 | ||||||
1290512937 | PR_kwDODtX3eM5M66op | 6 | open | 0 | Add permalink virtual field to items table | xavdid 1231935 | I added a virtual column (no storage overhead) to the output that easily links back to the source. It works nicely out of the box with datasette: ![](https://cdn.zappy.app/faf43661d539ee0fee02c0421de22d65.png) I got bit a bit by https://github.com/simonw/sqlite-utils/issues/411, so I went with a manual `table_xinfo` and creating the table via execute. Happy to adjust if that issue moves, but this seems like it works. I also added my best-guess instructions for local development on this package. I'm shooting in the dark, so feel free to replace with how you work on it locally. | 2023-03-26T22:22:38Z | 2023-03-29T18:38:52Z | 99bda9434e0adaa8459bc0abbe6262785cd4086c | 0 | b04d6c76c26820f2e0b04da58dd82789e83cbb42 | c5585c103d124b23ba1e163f8857d4ba49fe452a | FIRST_TIME_CONTRIBUTOR | hacker-news-to-sqlite 248903544 | https://github.com/dogsheep/hacker-news-to-sqlite/pull/6 | ||||||
526847823 | MDExOlB1bGxSZXF1ZXN0NTI2ODQ3ODIz | 7 | closed | 0 | Fixed conflicting CLI flags | tlockney 8944 | The `-a` used for the auth credentials and the shortened form of the `--all` flags were in conflict on the `fetch` command. To be consistent with other `-to-sqlite` libraries in the Dogsheep ecosystem, I removed the shortened form of the `--all` flag. | 2020-11-24T23:25:12Z | 2022-08-21T21:11:56Z | 2022-08-21T21:11:56Z | 2022-08-21T21:11:56Z | 4d88c84a66a501e4cb0dd2de9949072b8d42b859 | 0 | 02576f9b1c234128c6a3d52123761af8486beb57 | b956a01464007fe227895fe6eb6c942ed71298c8 | CONTRIBUTOR | pocket-to-sqlite 213286752 | https://github.com/dogsheep/pocket-to-sqlite/pull/7 | ||||
673872974 | MDExOlB1bGxSZXF1ZXN0NjczODcyOTc0 | 7 | open | 0 | Add instagram-to-sqlite | gavindsouza 36654812 | The tool covers only chat imports at the time of opening this PR but I'm planning to import everything else that I feel inquisitive about ref: https://github.com/gavindsouza/instagram-to-sqlite | 2021-06-19T12:26:16Z | 2021-07-28T07:58:59Z | 66e9828db4a8ddc4049ab9932e1304288e571821 | 0 | 4e4c6baf41778071a960d288b0ef02bd01cb6376 | 92c6bb77629feeed661c7b8d9183a11367de39e0 | FIRST_TIME_CONTRIBUTOR | dogsheep.github.io 214746582 | https://github.com/dogsheep/dogsheep.github.io/pull/7 | ||||||
300580221 | MDExOlB1bGxSZXF1ZXN0MzAwNTgwMjIx | 8 | closed | 0 | Use less RAM | simonw 9599 | Closes #7 | 2019-07-24T06:35:01Z | 2019-07-24T06:35:52Z | 2019-07-24T06:35:52Z | 2019-07-24T06:35:52Z | c8392df78ee3e1643d18b747a4abf585d84d5d88 | 0 | 6261500b01274a739176480774e82b31f2926e7f | 5d7e14d40d5a4cfd133ca5faa442312f607784c5 | MEMBER | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/8 | ||||
335980246 | MDExOlB1bGxSZXF1ZXN0MzM1OTgwMjQ2 | 8 | closed | 0 | stargazers command, refs #4 | simonw 9599 | Needs tests. Refs #4. | 2019-11-03T00:37:36Z | 2020-05-02T20:00:27Z | 2020-05-02T20:00:26Z | db25bdf8cee4c3e2d730cf269eb9a903b51cdb41 | 0 | ea07274667a08c67907e8bfbbccb6f0fb95ce817 | ae9035f8fe5aff1c54bff4c6b4c2e808a44f0f2a | MEMBER | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/8 | |||||
525371029 | MDExOlB1bGxSZXF1ZXN0NTI1MzcxMDI5 | 8 | closed | 0 | fix import error if note has no "updated" element | mkorosec 4028322 | I got the following error when executing evernote-to-sqlite enex evernote.db evernote.enex ``` ... File "evernote_to_sqlite/cli.py", line 31, in enex save_note(db, note) File "evernote_to_sqlite/utils.py", line 28, in save_note updated = note.find("updated").text AttributeError: 'NoneType' object has no attribute 'text' ``` Seems that in some cases the updated element is not added to the note, this is a part of the problematic note: ``` <created>20201019T074518Z</created> <note-attributes> <source>web.clip7</source> <source-application>webclipper.evernote</source-application> </note-attributes> ``` | 2020-11-22T22:51:05Z | 2021-02-11T22:34:06Z | 2021-02-11T22:34:06Z | 2021-02-11T22:34:06Z | 1c8457ddaa487aa2e677963d37217fcb6d544e59 | 0 | 03b0c240d5f12c2d651c4cb25f92b0fecc7f7419 | 1c355e5678877e14eefa2a5fab5a267342a03335 | CONTRIBUTOR | evernote-to-sqlite 303218369 | https://github.com/dogsheep/evernote-to-sqlite/pull/8 | ||||
698423667 | MDExOlB1bGxSZXF1ZXN0Njk4NDIzNjY3 | 8 | open | 0 | Add Gmail takeout mbox import (v2) | maxhawkins 28565 | WIP This PR builds on #5 to continue implementing gmail import support. Building on @UtahDave's work, these commits add a few performance and bug fixes: * Decreased memory overhead for import by manually parsing mbox headers. * Fixed error where some messages in the mbox would yield a row with NULL in all columns. I will send more commits to fix any errors I encounter as I run the importer on my personal takeout data. | 2021-07-28T07:05:32Z | 2023-09-08T01:22:49Z | d2809fd3fd835358d01ad10401228a562539b29e | 0 | 8e6d487b697ce2e8ad885acf613a157bfba84c59 | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/8 | ||||||
249680944 | MDExOlB1bGxSZXF1ZXN0MjQ5NjgwOTQ0 | 9 | closed | 0 | :pencil: Updates my_database.py to my_database.db | jefftriplett 50527 | I noticed that both `.py` and `.db` were used in the docs and assumed you'd prefer `.db`. | 2019-02-01T17:35:43Z | 2019-02-24T03:55:04Z | 2019-02-24T03:55:04Z | 2019-02-24T03:55:04Z | c5068a0972651b3e359ebc2d6c1486b8b7d2c242 | 0 | 1ad604fbbd3311f041357190796a3613c0c729d1 | 441c131db5cc68e197db19f0623ff8a96c90c3ff | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/9 | ||||
775078665 | PR_kwDODFE5qs4uMsMJ | 9 | open | 0 | Removed space from filename My Activity.json | widadmogral 91880982 | File name from google takeout has no space. The code only runs without error if filename is "MyActivity.json" and not "My Activity.json". Is it a new change by Google? | 2021-11-08T00:04:31Z | 2021-11-08T00:04:31Z | 236da5c8302c09a20fcd4164c563cd9fa5c9595c | 0 | 6d111f65687e13ffd8b39aa05f1f8f4a351e7788 | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/9 | ||||||
501791663 | MDExOlB1bGxSZXF1ZXN0NTAxNzkxNjYz | 10 | closed | 0 | Update utils.py to fix sqlite3.OperationalError | mattiaborsoi 29426418 | Fixes the errors: - sqlite3.OperationalError: table posts has no column named text - sqlite3.OperationalError: table photos has no column named hasSticker That will cause sqlite-utils to notice if there's a missing column and add it. As recommended by @simonw | 2020-10-12T20:17:53Z | 2020-10-12T20:25:10Z | 2020-10-12T20:25:09Z | 2020-10-12T20:25:09Z | a5a2b5feb56fef4f2b627699b7d628ee9d2d63db | 0 | c7bdb0207708a9eb40ba095039f0918fd103b176 | f4a82633da927cde672c9d9af92930bfca2e3ddf | CONTRIBUTOR | swarm-to-sqlite 205429375 | https://github.com/dogsheep/swarm-to-sqlite/pull/10 | ||||
542406910 | MDExOlB1bGxSZXF1ZXN0NTQyNDA2OTEw | 10 | closed | 0 | BugFix for encoding and not update info. | riverzhou 1277270 | Bugfix 1: Traceback (most recent call last): File "d:\anaconda3\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "d:\anaconda3\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "D:\Anaconda3\Scripts\evernote-to-sqlite.exe\__main__.py", line 7, in <module> File "d:\anaconda3\lib\site-packages\click\core.py", line 829, in __call__ File "d:\anaconda3\lib\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "d:\anaconda3\lib\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) return ctx.invoke(self.callback, **ctx.params) File "d:\anaconda3\lib\site-packages\click\core.py", line 610, in invoke return callback(*args, **kwargs) File "d:\anaconda3\lib\site-packages\evernote_to_sqlite\cli.py", line 30, in enex for tag, note in find_all_tags(fp, ["note"], progress_callback=bar.update): File "d:\anaconda3\lib\site-packages\evernote_to_sqlite\utils.py", line 11, in find_all_tags chunk = fp.read(1024 * 1024) UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 383: illegal multibyte sequence Bugfix 2: Traceback (most recent call last): File "D:\Anaconda3\Scripts\evernote-to-sqlite-script.py", line 33, in <module> sys.exit(load_entry_point('evernote-to-sqlite==0.3', 'console_scripts', 'evernote-to-sqlite')()) File "D:\Anaconda3\lib\site-packages\click\core.py", line 829, in __call__ return self.main(*args, **kwargs) File "D:\Anaconda3\lib\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "D:\Anaconda3\lib\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "D:\Anaconda3\lib\site-packages\click\core.py", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File "D:\Anaconda3\lib\site-packages\click\core.py", line 610, in invoke return callback(*args, **kw… | 2020-12-18T08:58:54Z | 2021-02-11T22:37:56Z | 2021-02-11T22:37:56Z | 4425daeccd43ce3c7bb45deaae577984f978e40f | 0 | 7b8b96b69f43cb2247875c3ca6d39878edf77a78 | 92254b71075c8806bca258c939e24af8397cdf98 | NONE | evernote-to-sqlite 303218369 | https://github.com/dogsheep/evernote-to-sqlite/pull/10 | |||||
948892757 | PR_kwDODFE5qs44jvRV | 11 | open | 0 | Update README.md | ashanan 11887 | Fix typo | 2022-05-27T03:13:59Z | 2022-05-27T03:13:59Z | 3d479a1052f2661de61b15c50b7a5b2daa20a33a | 0 | d4af1554a9b5ddedcd0b241450f7b935f38b9bf7 | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/11 | ||||||
255658112 | MDExOlB1bGxSZXF1ZXN0MjU1NjU4MTEy | 12 | closed | 0 | Support for numpy types, closes #11 | simonw 9599 | 2019-02-24T03:57:32Z | 2019-02-24T04:02:20Z | 2019-02-24T04:02:20Z | 2019-02-24T04:02:20Z | e615d22c5564ea1f32abb086088b2700110be10a | 0 | 7c20e60685088d6da0739749305215790ca8375a | c5068a0972651b3e359ebc2d6c1486b8b7d2c242 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/12 | |||||
645100848 | MDExOlB1bGxSZXF1ZXN0NjQ1MTAwODQ4 | 12 | open | 0 | Recovering of malformed ENEX file | engdan77 8431437 | Hey .. Awesome work developing this project, that I found very useful to me and saved me some work.. Thanks.. :) Some background to this PR... I've been searching around for a tool allowing me to transforming my personal collection of Evernote notes to a format easier to search and potentially easier import to future services. Now I discovered problem processing my large data ~5GB using the existing source using Pythons builtin xml-parser that unfortunately was unable to succeed without exception breaking the process. My first attempt I tried to adapt to more robust lxml package allowing huge data and with "recover", but even if it worked better it also failed processing the whole data. Even using the memory efficient etree.iterparse() it also unfortunately got into trouble. And with no luck finding any other libraries successfully parsing this enormous file I instead chose to build a "hugexmlparser" module that allows parsing this huge file using yield (on a byte-to-byte-level) and allows you to set a maximum size for <note> to cater for potential malformed or undesirable large attachments to export, should succeed covering potential exceptions. Some cases found where the parses discover malformed XML within <content> so also in those cases try to save as much as possible by escaping (to be dealt at a later stage, better than nothing), and if a missing end </note> before new (malformed?) it would add this after encounter a new start-tag. The code for the recovery process is a bit rough and for certain room for refactoring, but at the moment is seem to achieve what I wanted. Now with the above we pass this a minor changed version of save_note_recovery() assure the existing works. Also adding this as a new recover-enex command to click and kept the original options. A couple of new tests was added as well to check against using this command. Now this currently works to me, but thought I might share a PR in such as you find use for this yourself or found useful to others finding this rep… | 2021-05-15T07:49:31Z | 2021-05-15T19:57:50Z | 95f21ca163606db74babd036e6fa44b7d484d137 | 0 | a5839dadaa43694f208ad74a53670cebbe756956 | 0bc6ba503eecedb947d2624adbe1327dd849d7fe | FIRST_TIME_CONTRIBUTOR | evernote-to-sqlite 303218369 | https://github.com/dogsheep/evernote-to-sqlite/pull/12 | ||||||
521054612 | MDExOlB1bGxSZXF1ZXN0NTIxMDU0NjEy | 13 | open | 0 | SQLite does not have case sensitive columns | tomaskrehlik 1689944 | This solves a weird issue when there is record with metadata key that is only different in letter cases. See the test for details. | 2020-11-14T20:12:32Z | 2021-08-24T13:28:26Z | 38856acbc724ffdb8beb9e9f4ef0dbfa8ff51ad1 | 0 | 3e1b2945bc7c31be59e89c5fed86a5d2a59ebd5a | 71e36e1cf034b96de2a8e6652265d782d3fdf63b | FIRST_TIME_CONTRIBUTOR | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/13 | ||||||
1299129869 | PR_kwDOJHON9s5NbyYN | 13 | open | 0 | use universal command | amlestin 14314871 | 2023-04-02T15:10:54Z | 2023-04-02T15:37:34Z | b40fdee5efac03f10257f749ee7f69e4692ad6c5 | 0 | 8111718e747f59dddcb5bf7820ce922e0723c04a | e55a802d37a896475b6cf475c1ba947af63cca73 | FIRST_TIME_CONTRIBUTOR | apple-notes-to-sqlite 611552758 | https://github.com/dogsheep/apple-notes-to-sqlite/pull/13 | |||||||
1505067804 | PR_kwDODFE5qs5ZtYMc | 13 | open | 0 | use poetry for packages, asdf for versioning, and gh actions for ci | iloveitaly 150855 | - build: use poetry for package management, asdf for python version - build: cleanup poetry config, add keywords, ignore dist - ci: migrate circleci to gh actions - fix: dup method definition | 2023-09-06T17:59:16Z | 2023-09-06T17:59:16Z | cd4d8c4a7ecd231f6c5a8886245271934177f104 | 0 | b5f0ebe91755c46e01dc4aefb808f0292848fbed | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/13 | ||||||
1073492809 | PR_kwDODD6af84__DNJ | 14 | open | 0 | Photo links | redmanmale 6782721 | * add to `checkin_details` view new column for a calculated photo links * supported multiple links split by newline * create `events` table if there's no events in the history to avoid SQL errors Fixes #9. | 2022-10-01T09:44:15Z | 2022-11-18T17:10:49Z | 6ca283dc30a2713bd3fda0dc35df1c7186a5996e | 0 | 5541d9496bad73c9edce98f5562a3135359d57d6 | 719b6e96a016d0ca8b316d3bed9c2a7a0cb499ee | FIRST_TIME_CONTRIBUTOR | swarm-to-sqlite 205429375 | https://github.com/dogsheep/swarm-to-sqlite/pull/14 | ||||||
1501923826 | PR_kwDOJHON9s5ZhYny | 14 | open | 0 | fix: fix the problem of Chinese character garbling | barretlee 2698003 | 1. The code uses two different ways of writing encoding formats, `mac_roman` and `macroman`. It is uncertain whether there are any typo errors. 2. When there are Chinese characters in the content, exporting it results in garbled code. Changing it to `utf8` can fix the issue. | 2023-09-04T23:48:28Z | 2023-09-04T23:48:28Z | 66b5b73948b1bedc275432956dda43cfe151c78c | 0 | 5febe19b8922aa818e7dc265bdee30bcc5004eb4 | e55a802d37a896475b6cf475c1ba947af63cca73 | FIRST_TIME_CONTRIBUTOR | apple-notes-to-sqlite 611552758 | https://github.com/dogsheep/apple-notes-to-sqlite/pull/14 | ||||||
327051673 | MDExOlB1bGxSZXF1ZXN0MzI3MDUxNjcz | 15 | closed | 0 | twitter-to-sqlite import command, refs #4 | simonw 9599 | 2019-10-11T06:37:14Z | 2019-10-11T06:45:01Z | 2019-10-11T06:45:01Z | 2019-10-11T06:45:01Z | 2019ee908731054c6eaa3d5123dfbdf7d2d70fc4 | 0 | df1d85897118310a2d3c1b9e5aad108165302cf2 | 436a170d74ec70903d1b4ca430c2c6b6435cdfcc | MEMBER | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/15 | |||||
561512503 | MDExOlB1bGxSZXF1ZXN0NTYxNTEyNTAz | 15 | open | 0 | added try / except to write_records | ryancheley 9857779 | to keep the data write from failing if it came across an error during processing. In particular when trying to convert my HealthKit zip file (and that of my wife's) it would consistently error out with the following: ``` db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: too many SQL variables --------------------------------------------------------------------------------------------------------------------------------------------------------------------- db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: too many SQL variables --------------------------------------------------------------------------------------------------------------------------------------------------------------------- db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: table rBodyMass has no column named metadata_HKWasUserEntered --------------------------------------------------------------------------------------------------------------------------------------------------------------------- healthkit-to-sqlite 8 <module> sys.exit(cli()) core.py 829 __call__ return self.main(*args, **kwargs) core.py 782 main rv = self.invoke(ctx) core.py 1066 invoke return ctx.invoke(self.callback, **ctx.params) core.py 610 invoke return callback(*args, **kwargs) cli.py 57 cli convert_xml_to_sqlite(fp, db, progress_callback=bar.update, zipfile=zf) utils.py 42 convert_xml_to_sqlite write_records(records, db) utils.py 143 write_records db[table].insert_all( db.py 1899 insert_all self.insert_chunk( db.py 1720 insert_chunk self.insert_chunk( db.py 1720 insert_chunk self.insert_chunk( db.py 1714 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.co… | 2021-01-26T03:56:21Z | 2021-01-26T03:56:21Z | 8527278a87e448f57c7c6bd76a2d85f12d0233dd | 0 | 7f1b168c752b5af7c1f9052dfa61e26afc83d574 | 71e36e1cf034b96de2a8e6652265d782d3fdf63b | FIRST_TIME_CONTRIBUTOR | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/15 | ||||||
771790589 | PR_kwDOEhK-wc4uAJb9 | 15 | open | 0 | include note tags in the export | d-rep 436138 | When parsing the Evernote `<note>` elements, the script will now also parse any nested `<tag>` elements, writing them out into a separate sqlite table. Here is an example of how to query the data after the script has run: ``` select notes.*, (select group_concat(tag) from notes_tags where notes_tags.note_id=notes.id) as tags from notes; ``` My .enex source file is 3+ years old so I am assuming the structure hasn't changed. Interestingly, my _notebook names_ show up in the _tags_ list where the tag name is prefixed with `notebook_`, so this could maybe help work around the first limitation mentioned in the [evernote-to-sqlite blog post](https://simonwillison.net/2020/Oct/16/building-evernote-sqlite-exporter/). | 2021-11-02T20:04:31Z | 2021-11-02T20:04:31Z | ee36aba995b0a5385bdf9a451851dcfc316ff7f6 | 0 | 8cc3aa49c6e61496b04015c14048c5dac58d6b42 | fff89772b4404995400e33fe1d269050717ff4cf | FIRST_TIME_CONTRIBUTOR | evernote-to-sqlite 303218369 | https://github.com/dogsheep/evernote-to-sqlite/pull/15 | ||||||
592364255 | MDExOlB1bGxSZXF1ZXN0NTkyMzY0MjU1 | 16 | open | 0 | Add a fallback ID, print if no ID found | n8henrie 1234956 | Fixes https://github.com/dogsheep/healthkit-to-sqlite/issues/14 | 2021-03-13T13:38:29Z | 2021-03-13T14:44:04Z | 16ab307b2138891f226a66e4954c5470de753a0f | 0 | 27b3d54ccfe7d861770a9d0b173f6503580fea4a | 71e36e1cf034b96de2a8e6652265d782d3fdf63b | FIRST_TIME_CONTRIBUTOR | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/16 | ||||||
596627780 | MDExOlB1bGxSZXF1ZXN0NTk2NjI3Nzgw | 18 | open | 0 | Add datetime parsing | n8henrie 1234956 | Parses the datetime columns so they are subsequently properly recognized as datetime. Fixes https://github.com/dogsheep/healthkit-to-sqlite/issues/17 | 2021-03-19T14:34:22Z | 2021-03-19T14:34:22Z | c87f4e8aa88ec277c6b5a000670c2cb42a10c03d | 0 | e0e7a0f99f844db33964b27c29b0b8d5f160202b | 71e36e1cf034b96de2a8e6652265d782d3fdf63b | FIRST_TIME_CONTRIBUTOR | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/18 | ||||||
718734191 | MDExOlB1bGxSZXF1ZXN0NzE4NzM0MTkx | 22 | open | 0 | Make sure that case-insensitive column names are unique | FabianHertwig 32016596 | This closes #21. When there are metadata entries with the same case insensitive string, then there is an error when trying to create a new column for that metadata entry in the database table, because a column with that case insensitive name already exists. ```xml <Record type="HKQuantityTypeIdentifierDietaryCholesterol" sourceName="MyFitnessPal" sourceVersion="35120" unit="mg" creationDate="2021-07-04 20:55:27 +0200" startDate="2021-07-04 20:55:00 +0200" endDate="2021-07-04 20:55:00 +0200" value="124"> <MetadataEntry key="meal" value="Dinner"/> <MetadataEntry key="Meal" value="Dinner"/> </Record> ``` The code added in this PR checks if a key already exists in a record and if so adds a number at its end. The resulting column names look like the example below then. Interestingly, the column names viewed with Datasette are not case insensitive. ```text startDate, endDate, value, unit, sourceName, sourceVersion, creationDate, metadata_meal, metadata_Meal_2, metadata_Mahlzeit ``` | 2021-08-24T13:13:38Z | 2021-08-24T13:26:20Z | c757d372c10284cd6fa58d144549bc89691341c3 | 0 | b16fb556f84a0eed262a518ca7ec82a467155d23 | 9fe3cb17e03d6c73222b63e643638cf951567c4c | FIRST_TIME_CONTRIBUTOR | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/22 | ||||||
1182000455 | PR_kwDOC8tyDs5Gc-VH | 23 | open | 0 | Include workout statistics | badboy 2129 | Not sure when this changed (iOS 16 maybe?), but the `WorkoutStatistics` now has a whole bunch of information about workouts, e.g. for runs it contains the distance (as a `<WorkoutStatistics type="HKQuantityTypeIdentifierDistanceWalkingRunning ...>` element). Adding it as another column at leat allows me to pull these out (using SQLite's JSON support). I'm running with this patch on my own data now. | 2023-01-01T17:29:56Z | 2023-01-01T17:29:57Z | e0ad45055f363810085119f26df87a6804451056 | 0 | d5b9e3609961515cc52bcc5ef070e3b83b473339 | 9fe3cb17e03d6c73222b63e643638cf951567c4c | FIRST_TIME_CONTRIBUTOR | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/23 | ||||||
329324368 | MDExOlB1bGxSZXF1ZXN0MzI5MzI0MzY4 | 24 | closed | 0 | Tweet source extraction and new migration system | simonw 9599 | Closes #12 and #23 | 2019-10-17T15:24:56Z | 2019-10-17T15:49:29Z | 2019-10-17T15:49:24Z | 2019-10-17T15:49:24Z | c9295233f219c446fa2085cace987067488a31b9 | 0 | 39f822a624685e321dbca8a4318741dd1e42548b | 619f724a722b3f23f4364f67d3164b93e8ba2a70 | MEMBER | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/24 | ||||
434162316 | MDExOlB1bGxSZXF1ZXN0NDM0MTYyMzE2 | 29 | closed | 0 | Fixed bug in SQL query for photo scores | RhetTbull 41546558 | The join on ZCOMPUTEDASSETATTRIBUTES used the wrong columns. In most of the Photos database tables, table.ZASSET joins with ZGENERICASSET.Z_PK | 2020-06-14T15:39:22Z | 2020-12-04T22:32:36Z | 2020-12-04T22:32:27Z | 2020-12-04T22:32:27Z | edc80a0d361006f478f2904a90bfe6c730ed6194 | 0 | f961a90788cb2059d40b9a0810900ac81e6859f6 | 45ce3f8bfb8c70f57ca5d8d82f22368fea1eb391 | CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/29 | ||||
448355680 | MDExOlB1bGxSZXF1ZXN0NDQ4MzU1Njgw | 30 | open | 0 | Handle empty bucket on first upload. Allow specifying the endpoint_url for services other than S3 (like b2 and digitalocean spaces) | scanner 110038 | Finally got around to trying dogsheep-photos but I want to use backblaze's b2 service instead of AWS S3. Had to add a way to optionally specify the endpoint_url to connect to. Then with the bucket being empty the initial key retrieval would fail. Probably a better way to see that the bucket is empty than doing a test inside the paginator loop. Also probably a better way to specify the endpoint_url as we get and test for it twice using the same code in two different places but did not want to spend too much time worrying about it. | 2020-07-13T16:15:26Z | 2020-07-13T16:15:26Z | 583b26f244166aadf2dcc680e39d1ca59765da37 | 0 | 647d4b42c6f4d1fba4b99f73fe163946cea6ee36 | 45ce3f8bfb8c70f57ca5d8d82f22368fea1eb391 | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/30 | ||||||
543015825 | MDExOlB1bGxSZXF1ZXN0NTQzMDE1ODI1 | 31 | open | 0 | Update for Big Sur | RhetTbull 41546558 | Refactored out the SQL for extracting aesthetic scores to use osxphotos -- adds compatbility for Big Sur via osxphotos which has been updated for new table names in Big Sur. Have not yet refactored the SQL for extracting labels which is still compatible with Big Sur. | 2020-12-20T04:36:45Z | 2023-08-08T15:52:52Z | 0e571b07430024d4ce00d5e8ba28591cefd27d6f | 0 | 39c12f8cda206ad621ec9940cce538570513e764 | edc80a0d361006f478f2904a90bfe6c730ed6194 | CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/31 | ||||||
292879204 | MDExOlB1bGxSZXF1ZXN0MjkyODc5MjA0 | 32 | closed | 0 | db.add_foreign_keys() method | simonw 9599 | Refs #31. Still TODO: - [x] Unit tests - [x] Documentation | 2019-06-28T15:40:33Z | 2019-06-29T06:27:39Z | 2019-06-29T06:27:39Z | 2019-06-29T06:27:39Z | 997d8758fc8992be93d5984556e5b9e3bad4205f | 0 | fc81588cc31df58374c996884c67cedd98a06f4a | 86bd2bba689e25f09551d611ccfbee1e069e5b66 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/32 | ||||
372273608 | MDExOlB1bGxSZXF1ZXN0MzcyMjczNjA4 | 33 | closed | 0 | Upgrade to sqlite-utils 2.2.1 | simonw 9599 | 2020-02-07T07:32:12Z | 2020-03-20T19:21:42Z | 2020-03-20T19:21:41Z | 5338f6baab3ec1424431133968d8b64a656ce4c4 | 0 | 08f51271d6309aad698b9e8a7587fcebbbd67781 | 35c18a09fa664324dcb75e5e58ccb90644456d02 | MEMBER | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/33 | ||||||
293117183 | MDExOlB1bGxSZXF1ZXN0MjkzMTE3MTgz | 34 | closed | 0 | sqlite-utils index-foreign-keys / db.index_foreign_keys() | simonw 9599 | Refs #33 - [x] `sqlite-utils index-foreign-keys` command - [x] `db.index_foreign_keys()` method - [x] unit tests - [x] documentation | 2019-06-30T16:43:40Z | 2019-06-30T23:50:55Z | 2019-06-30T23:50:55Z | 2019-06-30T23:50:54Z | e8f887ef4a0977243811b90bc2ce9aed9d2c206a | 0 | d82b000e3d55067516e2ce42f131cf4695e80dca | 0fe3b38290e1bb2d92746d90318d8662b57218bd | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/34 | ||||
726990680 | MDExOlB1bGxSZXF1ZXN0NzI2OTkwNjgw | 35 | open | 0 | Support for Datasette's --base-url setting | brandonrobertz 2670795 | This makes it so you can use Dogsheep if you're using Datasette with the `--base-url /some-path/` setting. | 2021-09-03T17:47:45Z | 2021-09-03T17:47:45Z | 0f5931da2099303111c49ec726b78bae814f755e | 0 | e6679d287b2e97fc94f50da64e1a7b91c1fbbf67 | a895bc360f2738c7af43deda35c847f1ee5bff51 | FIRST_TIME_CONTRIBUTOR | dogsheep-beta 197431109 | https://github.com/dogsheep/dogsheep-beta/pull/35 | ||||||
727390835 | MDExOlB1bGxSZXF1ZXN0NzI3MzkwODM1 | 36 | open | 0 | Correct naming of tool in readme | badboy 2129 | 2021-09-05T12:05:40Z | 2022-01-06T16:04:46Z | 358678c6b48072769f2985fe6be8fc5e54ed2e06 | 0 | bf26955c250e601a0d9e751311530940b704f81e | edc80a0d361006f478f2904a90bfe6c730ed6194 | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/36 | |||||||
986925985 | PR_kwDOD079W84600uh | 37 | open | 0 | Fix former command name in readme | DanLipsitt 578773 | Looks like a previous commit missed a `photo-to-sqlite`→ `dogsheep-photos` replacement. | 2022-07-05T02:09:13Z | 2022-07-05T02:09:13Z | 1fa5a3b9ddab2a954aea21ea4292b944e826866a | 0 | b0d256c5bc480450627d98d8c8a5e3d8c61dc2ae | 325aa38cb23d0757bb1335ee2ea94a082475a66e | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/37 | ||||||
297412464 | MDExOlB1bGxSZXF1ZXN0Mjk3NDEyNDY0 | 38 | closed | 0 | table.update() method | simonw 9599 | Refs #35 Still to do: - [x] Unit tests - [x] Switch to using `.get()` - [x] Better exceptions, plus unit tests for what happens if pk does not exist - [x] Documentation - [x] Ensure compound primary keys work properly - [x] `alter=True` support | 2019-07-14T17:03:49Z | 2019-07-28T15:43:51Z | 2019-07-28T15:43:51Z | 2019-07-28T15:43:51Z | 0747dabb24b608e8524de4858ce50c60ba7e471b | 0 | 16d7008002b43cf47a973791da93e5cdd5913fc3 | a6749cdf43229c4f7864c946496e9ac0141627d9 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/38 | ||||
1454719622 | PR_kwDOD079W85WtUKG | 38 | closed | 0 | photos-to-sql not found? | coldclimate 319473 | I wonder if `photos-to-sql` is an old name for `dogsheep-photos`, because I can't find it anywhere. I can't actually get this command to work (`sqlite3.OperationalError: no such table: attached.ZGENERICASSET` thrown) but I don't think that's related | 2023-07-29T09:59:42Z | 2023-07-29T10:01:27Z | 2023-07-29T10:01:23Z | 78898d8344bd37379b9ef44384629c26ed8c4558 | 0 | dbf0213a98cfb92f49a60695d0e0094b851b1cbb | 325aa38cb23d0757bb1335ee2ea94a082475a66e | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/38 | |||||
1454726308 | PR_kwDOD079W85WtVyk | 39 | open | 0 | Missing option in datasette instructions | coldclimate 319473 | Gotta tell it where to look | 2023-07-29T10:34:48Z | 2023-07-29T10:34:48Z | bd9c51b4e3e110122f921fc6ebf10b69d7fcbb7a | 0 | 17c0ddf5113d8587247d4736e1390fe07ec33b8c | 325aa38cb23d0757bb1335ee2ea94a082475a66e | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/39 | ||||||
297459797 | MDExOlB1bGxSZXF1ZXN0Mjk3NDU5Nzk3 | 40 | closed | 0 | .get() method plus support for compound primary keys | simonw 9599 | - [x] Tests for the `NotFoundError` exception - [x] Documentation for `.get()` method - [x] Support `--pk` multiple times to define CLI compound primary keys - [x] Documentation for compound primary keys | 2019-07-15T03:43:13Z | 2019-07-15T04:28:57Z | 2019-07-15T04:28:52Z | 2019-07-15T04:28:52Z | c65b67ca46f70e2da46a5b945f4ed358173262e9 | 0 | b5a5df6d0ed47f33f6e1b4873948ead9a7c71060 | 65b2156d9cc0aa6b5c3dc7a6bd600d98b281a13b | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/40 | ||||
300286535 | MDExOlB1bGxSZXF1ZXN0MzAwMjg2NTM1 | 45 | closed | 0 | Implemented table.lookup(...), closes #44 | simonw 9599 | 2019-07-23T13:03:30Z | 2019-07-23T13:07:00Z | 2019-07-23T13:07:00Z | 2019-07-23T13:07:00Z | 580502431614d3653c93249988290265f3163d4b | 0 | c0852ce018425450d6c040040f32729d41ff635c | f3a4c3d3ee6475a6caf3c9606656dbaf1df020b7 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/45 | |||||
300377599 | MDExOlB1bGxSZXF1ZXN0MzAwMzc3NTk5 | 47 | closed | 0 | extracts= table parameter | simonw 9599 | Still needs docs. Refs #46 | 2019-07-23T16:30:29Z | 2019-07-23T17:00:43Z | 2019-07-23T17:00:43Z | 2019-07-23T17:00:43Z | 941d281aee6eac20ad64b505511da7e47f697700 | 0 | 1c9d08f75a48b2a3770f2a880462dc8b195289b7 | e22cfcd953f967f6e9551b3a048d7c40726f349b | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/47 | ||||
469651732 | MDExOlB1bGxSZXF1ZXN0NDY5NjUxNzMy | 48 | closed | 0 | Add pull requests | adamjonas 755825 | ref #46 Issues don't have merge information on them, which means that PRs need to be pulled separately. Did my best to mimic the API of issues. | 2020-08-18T17:58:44Z | 2020-11-29T23:51:09Z | 2020-11-29T23:51:09Z | 2020-11-29T23:51:09Z | b37f55549461cfe0731b57623f315860b3db49d0 | 0 | 3a0d5c498f9faae4e40aab204cd01b965a4f61f3 | 16d271253f4ea71b261d2d228b926c7bc1a7e660 | CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/48 | ||||
469944999 | MDExOlB1bGxSZXF1ZXN0NDY5OTQ0OTk5 | 49 | closed | 0 | Document the use of --stop_after with favorites, refs #20 | mikepqr 370930 | (I discovered this trawling the issues for how to use --since with favorites) | 2020-08-19T06:10:52Z | 2021-08-20T00:02:11Z | 2021-08-20T00:02:11Z | 2021-08-20T00:02:10Z | b6a4da8be3b6d4b74c6a5fac8924bf22a6824f2c | 0 | 7ace806c81faf31c1aace0f0b2a4c17dd72cfa06 | 21fc1cad6dd6348c67acff90a785b458d3a81275 | CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/49 | ||||
301824097 | MDExOlB1bGxSZXF1ZXN0MzAxODI0MDk3 | 51 | closed | 0 | Fix for too many SQL variables, closes #50 | simonw 9599 | 2019-07-28T11:30:30Z | 2019-07-28T11:59:32Z | 2019-07-28T11:59:32Z | 2019-07-28T11:59:32Z | 9cb045284ede8009c12abdb1755b5b20f6ccff5f | 0 | 0c1b8b7f96be874bb63801f69323960f277aa49a | 9b7be79c86b4283f24a64f62257c918f12542997 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/51 | |||||
303990683 | MDExOlB1bGxSZXF1ZXN0MzAzOTkwNjgz | 53 | closed | 0 | Work in progress: m2m() method for creating many-to-many records | simonw 9599 | - [x] `table.insert({"name": "Barry"}).m2m("tags", lookup={"tag": "Coworker"})` - [x] Explicit table name `.m2m("humans", ..., m2m_table="relationships")` - [x] Automatically use an existing m2m table if a single obvious candidate exists (a table with two foreign keys in the correct directions) - [x] Require the explicit `m2m_table=` argument if multiple candidates for the m2m table exist - [x] Documentation Refs #23 | 2019-08-03T10:03:56Z | 2019-08-04T03:38:10Z | 2019-08-04T03:37:33Z | 2019-08-04T03:37:33Z | 4c0912dbf27b12071aca9569bcf7233e60f91c7c | 0 | 243bcaa1acd32a173c07b24dca553991493005a0 | e1021030dd2d8d4705ad0e7bae389eeaea7fa17b | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/53 | ||||
308292447 | MDExOlB1bGxSZXF1ZXN0MzA4MjkyNDQ3 | 55 | closed | 0 | Ability to introspect and run queries against views | simonw 9599 | See #54 | 2019-08-17T13:40:56Z | 2019-08-23T12:19:42Z | 2019-08-23T12:19:42Z | 2019-08-23T12:19:42Z | 9faa98222669723d31e918bb16a42c13c363817f | 0 | 4441d6d838fd7518ce715184361f549a04ec8b70 | 0e7b461eb3e925aef713206c15794ceae9259c57 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/55 | ||||
549204063 | MDExOlB1bGxSZXF1ZXN0NTQ5MjA0MDYz | 55 | closed | 0 | Fix archive imports | jacobian 21148 | This fixes the issues discussed in #54 | 2021-01-05T15:54:48Z | 2021-08-20T00:02:49Z | 2021-08-20T00:02:49Z | 2021-08-20T00:02:48Z | bf622dcb82203c1cd87e914901b53afe6f90e668 | 0 | ffb127844f133fcb6a1af5cd3557995d303fb53f | 21fc1cad6dd6348c67acff90a785b458d3a81275 | CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/55 | ||||
313007483 | MDExOlB1bGxSZXF1ZXN0MzEzMDA3NDgz | 56 | closed | 0 | Escape the table name in populate_fts and search. | amjith 49260 | The table names weren't escaped using double quotes in the populate_fts method. Reproducible case: ``` >>> import sqlite_utils >>> db = sqlite_utils.Database("abc.db") >>> db["http://example.com"].insert_all([ ... {"id": 1, "age": 4, "name": "Cleo"}, ... {"id": 2, "age": 2, "name": "Pancakes"} ... ], pk="id") <Table http://example.com (id, age, name)> >>> db["http://example.com"].enable_fts(["name"]) Traceback (most recent call last): File "<input>", line 1, in <module> db["http://example.com"].enable_fts(["name"]) File "/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py", l ine 705, in enable_fts self.populate_fts(columns) File "/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py", l ine 715, in populate_fts self.db.conn.executescript(sql) sqlite3.OperationalError: unrecognized token: ":" >>> ``` | 2019-09-01T06:29:05Z | 2019-09-02T17:23:21Z | 2019-09-02T17:23:21Z | 79852e97ecb69b88da87da0cba2a55887cf83bda | 0 | 83ca4c802f5d5102e73ff366e61514ded81dc7a1 | cb70f7d10996b844154bf3da88779dd1f65590bc | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/56 | |||||
313105634 | MDExOlB1bGxSZXF1ZXN0MzEzMTA1NjM0 | 57 | closed | 0 | Add triggers while enabling FTS | amjith 49260 | This adds the option for a user to set up triggers in the database to keep their FTS table in sync with the parent table. Ref: https://sqlite.org/fts5.html#external_content_and_contentless_tables I would prefer to make the creation of triggers the default behavior, but that will break existing usage where people have been calling `populate_fts` after inserting new rows. I am happy to make changes to the PR as you see fit. | 2019-09-02T04:23:40Z | 2019-09-03T01:03:59Z | 2019-09-02T23:42:29Z | 2019-09-02T23:42:29Z | 405e092d5916e70df10f82d15e9c052aa9ee8d80 | 0 | e01943271b17115fbe0e81d523126d2fb1c7c24b | cb70f7d10996b844154bf3da88779dd1f65590bc | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/57 | ||||
543246535 | MDExOlB1bGxSZXF1ZXN0NTQzMjQ2NTM1 | 59 | closed | 0 | Remove unneeded exists=True for -a/--auth flag. | frosencrantz 631242 | The file does not need to exist when using an environment variable. | 2020-12-21T06:03:55Z | 2021-05-22T14:06:19Z | 2021-05-19T16:08:12Z | 2021-05-19T16:08:12Z | 70dffca351375e6f542969c72ebc43c6d393d99c | 0 | 79745bed50b7344c5cbb17a08215dc20d58b9416 | d19d7db034bf7c3adcae37b9ab6f365d569605b3 | CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/59 | ||||
724317650 | MDExOlB1bGxSZXF1ZXN0NzI0MzE3NjUw | 59 | closed | 0 | Fix for since_id bug, closes #58 | rubenv 42904 | Fixes remaining instances of this bug | 2021-09-01T09:49:09Z | 2021-09-21T17:37:40Z | 2021-09-21T17:37:40Z | 2021-09-21T17:37:40Z | 91aa5f578e871a7976ca0a861862f9b9dd162464 | 0 | 27369e4d1c9702de34ebc125f92ef3fc9d74abed | 74726190d4031bfa36db93e189555e273b35e283 | CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/59 | ||||
313383317 | MDExOlB1bGxSZXF1ZXN0MzEzMzgzMzE3 | 60 | closed | 0 | db.triggers and table.triggers introspection | simonw 9599 | Closes #59 | 2019-09-03T00:04:32Z | 2019-09-03T00:09:42Z | 2019-09-03T00:09:42Z | 2019-09-03T00:09:42Z | 2ca63e3b2de5408a860c6c7c1852deb9a138279e | 0 | b0a27fbb34b4362ef192deb560612fabf046cd32 | 405e092d5916e70df10f82d15e9c052aa9ee8d80 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/60 | ||||
564172140 | MDExOlB1bGxSZXF1ZXN0NTY0MTcyMTQw | 61 | closed | 0 | fixing typo in get cli help text | daniel-butler 22578954 | 2021-01-29T18:57:04Z | 2021-05-19T16:07:09Z | 2021-05-19T16:07:09Z | 2021-05-19T16:07:09Z | ba8cf3e9bb5f4f8740bd4b9eed28f1464d7f6b9a | 0 | 7ac6efc3a873facafa72192b58e28c6e8a79f744 | 62dfd3bc4014b108200001ef4bc746feb6f33b45 | CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/61 | |||||
337847573 | MDExOlB1bGxSZXF1ZXN0MzM3ODQ3NTcz | 64 | closed | 0 | test_insert_upsert_all_empty_list | simonw 9599 | 2019-11-07T04:24:45Z | 2019-11-07T04:32:38Z | 2019-11-07T04:32:38Z | 2019-11-07T04:32:38Z | 8dab9fd1ccf571e188eec9ccf606a0c50fccf200 | 0 | 8daea7f1265ddcce67d28258068a25666954000f | a0a65f9a6405079b01aefdbf4b5f507bc758567a | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/64 | |||||
337853394 | MDExOlB1bGxSZXF1ZXN0MzM3ODUzMzk0 | 65 | closed | 0 | Release 1.12.1 | simonw 9599 | 2019-11-07T04:51:29Z | 2019-11-07T04:58:48Z | 2019-11-07T04:58:47Z | 2019-11-07T04:58:47Z | 0a0cec3cf27861455e8cd1c4d84937825a18bb30 | 0 | 28f8a238ab8fc2a70ee81bd73de6c167d9db9cdf | 8dab9fd1ccf571e188eec9ccf606a0c50fccf200 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/65 | |||||
672053811 | MDExOlB1bGxSZXF1ZXN0NjcyMDUzODEx | 65 | open | 0 | basic support for events | khimaros 231498 | a quick first pass at implementing the feature requested in https://github.com/dogsheep/github-to-sqlite/issues/64 testing instructions: ``` $ github-to-sqlite events events.db user/khimaros ``` if the specified user is the authenticated user, it will also include private events. caveat: pagination appears to be broken (i don't see `next` in the response JSON from GitHub) | 2021-06-17T00:51:30Z | 2022-10-03T22:35:03Z | 0a252a06a15e307c8a67b2e0aac0907e2566bf19 | 0 | 82da9f91deda81d92ec64c9eda960aa64340c169 | 0e45b72312a0756e5a562effbba08cb8de1e480b | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/65 | ||||||
872242672 | PR_kwDODEm0Qs4z_V3w | 65 | open | 0 | Update Twitter dev link, clarify apps vs projects | rixx 2657547 | Twitter pushes you heavily towards v2 projects instead of v1 apps – I know the README mentions v1 API compatibility at the top, but I still nearly got turned around here. | 2022-03-05T11:56:08Z | 2022-03-05T11:56:08Z | 765a450845ba26fac102d9154980cd936399546c | 0 | b7cfe9dcb7dbccc7ba8171cfe74f19227c4351ec | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/65 | ||||||
716357982 | MDExOlB1bGxSZXF1ZXN0NzE2MzU3OTgy | 66 | open | 0 | Add --merged-by flag to pull-requests sub command | sarcasticadmin 30531572 | ## Description Proposing a solution to the API limitation for `merged_by` in pull_requests. Specifically the following called out in the readme: ``` Note that the merged_by column on the pull_requests table will only be populated for pull requests that are loaded using the --pull-request option - the GitHub API does not return this field for pull requests that are loaded in bulk. ``` This approach might cause larger repos to hit rate limits called out in https://github.com/dogsheep/github-to-sqlite/issues/51 but seems to work well in the repos I tested and included below. ## Old Behavior - Had to list out the pull-requests individually via multiple `--pull-request` flags ## New Behavior - `--merged-by` flag for getting 'merge_by' information out of pull-requests without having to specify individual PR numbers. # Testing Picking some repo that has more than one merger (datasette only has 1 😉 ) ``` $ github-to-sqlite pull-requests ./github.db opnsense/tools --merged-by $ echo "select id, url, merged_by from pull_requests;" | sqlite3 ./github.db 83533612|https://github.com/opnsense/tools/pull/39|1915288 102632885|https://github.com/opnsense/tools/pull/43|1915288 149114810|https://github.com/opnsense/tools/pull/57|1915288 160394495|https://github.com/opnsense/tools/pull/64|1915288 163308408|https://github.com/opnsense/tools/pull/67|1915288 169723264|https://github.com/opnsense/tools/pull/69|1915288 171381422|https://github.com/opnsense/tools/pull/72|1915288 179938195|https://github.com/opnsense/tools/pull/77|1915288 196233824|https://github.com/opnsense/tools/pull/82|1915288 215289964|https://github.com/opnsense/tools/pull/93| 219696100|https://github.com/opnsense/tools/pull/97|1915288 223664843|https://github.com/opnsense/tools/pull/99| 228446172|https://github.com/opnsense/tools/pull/103|1915288 238930434|https://github.com/opnsense/tools/pull/110|1915288 255507110|https://github.com/opnsense/tools/pull/119|1915288 255980675|https://github.com/opnsense/tools/pull/120… | 2021-08-20T00:57:55Z | 2021-09-28T21:50:31Z | 6b4276d9469e4579c81588ac9e3d128026d919a0 | 0 | a92a31d5d446022baeaf7f3c9ea107094637e64d | ed3752022e45b890af63996efec804725e95d0d4 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/66 | ||||||
943518450 | PR_kwDODEm0Qs44PPLy | 66 | open | 0 | Ageinfo workaround | ashanan 11887 | I'm not sure if this is due to a new format or just because my ageinfo file is blank, but trying to import an archive would crash when it got to that file. This PR adds a guard clause in the `ageinfo` transformer and sets a default value that doesn't throw an exception. Seems likely to be the same issue mentioned by danp in https://github.com/dogsheep/twitter-to-sqlite/issues/54, my ageinfo file looks the same. Added that same ageinfo file to the test archive as well to help confirm my workaround didn't break anything. Let me know if you want any changes! | 2022-05-21T21:08:29Z | 2022-05-21T21:09:16Z | c22e8eba634b70e914de9f72e452b1ebea55c6ef | 0 | 75ae7c94120d14083217bc76ebd603b396937104 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/66 | ||||||
346264926 | MDExOlB1bGxSZXF1ZXN0MzQ2MjY0OTI2 | 67 | closed | 0 | Run tests against 3.5 too | simonw 9599 | 2019-11-27T14:20:35Z | 2019-12-31T01:29:44Z | 2019-12-31T01:29:43Z | 88375b0bc055067b996584f06ed85a9a90c5aa1a | 0 | 4c6e5a4486e0e17555774eb3279142234a8b4abc | 0a0cec3cf27861455e8cd1c4d84937825a18bb30 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/67 | ||||||
721686721 | MDExOlB1bGxSZXF1ZXN0NzIxNjg2NzIx | 67 | open | 0 | Replacing step ID key with step_id | jshcmpbll 16374374 | Workflows that have an `id` in any step result in the following error when running `workflows`: e.g.`github-to-sqlite workflows github.db nixos/nixpkgs` ```Traceback (most recent call last): File "/usr/local/bin/github-to-sqlite", line 8, in <module> sys.exit(cli()) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1137, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1062, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1668, in invoke```Traceback (most recent call last): File "/usr/local/bin/github-to-sqlite", line 8, in <module> sys.exit(cli()) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1137, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1062, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1668, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 763, in invoke return __callback(*args, **kwargs) File "/usr/local/lib/python3.8/dist-packages/github_to_sqlite/cli.py", line 601, in workflows utils.save_workflow(db, repo_id, filename, content) File "/usr/local/lib/python3.8/dist-packages/github_to_sqlite/utils.py", line 865, in save_workflow db["steps"].insert_all( File "/usr/local/lib/python3.8/dist-packages/sqlite_utils/db.py", line 2596, in insert_all self.insert_chunk( File "/usr/local/lib/python3.8/dist-packages/sqlite_utils/db.py", line 2378, in insert_chunk result = self.db.execute(query, params) File "/usr/local/lib/python3.8/dist-packages/sqlite_utils/db.py", line 419, in execute return self.conn.execute(sql, parameters) … | 2021-08-28T01:26:41Z | 2021-08-28T01:27:00Z | 9f73c9bf29dec9a1482d9af56b9fac271869585c | 0 | 9b5acceb25cf48b00e9c6c8293358b036440deb2 | ed3752022e45b890af63996efec804725e95d0d4 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/67 | ||||||
1179812287 | PR_kwDODEm0Qs5GUoG_ | 67 | open | 0 | Add support for app-only bearer tokens | sometimes-i-send-pull-requests 26161409 | Previously, twitter-to-sqlite only supported OAuth1 authentication, and the token must be on behalf of a user. However, Twitter also supports application-only bearer tokens, documented here: https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens This PR adds support to twitter-to-sqlite for using application-only bearer tokens. To use, the auth.json file just needs to contain a "bearer_token" key instead of "api_key", "api_secret_key", etc. | 2022-12-28T23:31:20Z | 2022-12-28T23:31:20Z | 7825cd68047088cbdc9666586f1af9b7e1fa88c2 | 0 | 52050d06eeb85f3183b086944b7b75ae758096cd | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/67 | ||||||
747742034 | PR_kwDODFdgUs4skaNS | 68 | open | 0 | Add support for retrieving teams / members | philwills 68329 | Adds a method for retrieving all the teams within an organisation and all the members in those teams. The latter is stored as a join table `team_members` beteween `teams` and `users`. | 2021-10-01T15:55:02Z | 2021-10-01T15:59:53Z | f46e276c356c893370d5893296f4b69f08baf02c | 0 | cc838e87b1eb19b299f277a07802923104f35ce2 | ed3752022e45b890af63996efec804725e95d0d4 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/68 | ||||||
1179812491 | PR_kwDODEm0Qs5GUoKL | 68 | open | 0 | Archive: Import mute table | sometimes-i-send-pull-requests 26161409 | 2022-12-28T23:32:06Z | 2022-12-28T23:32:06Z | 47d4d3bda6d4123f58d8dbd634f9f146d97b037e | 0 | e1cd68ea0244c4689a3c49799c6b24371cdc4978 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/68 | |||||||
1179812620 | PR_kwDODEm0Qs5GUoMM | 69 | open | 0 | Archive: Import new tweets table name | sometimes-i-send-pull-requests 26161409 | Given the code here, it seems like in the past this file was named "tweet.js". In recent exports, it's named "tweets.js". The archive importer needs to be modified to take this into account. Existing logic is reused for importing this table. (However, the resulting table name will be different, matching the different file name -- archive_tweets, rather than archive_tweet). | 2022-12-28T23:32:44Z | 2022-12-28T23:32:44Z | 1a8c02a8d349c8fd4074139a6a3eed552676bdf3 | 0 | 11e8fa64ca30cebde047a4268e65f376c42e2b60 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/69 | ||||||
862538586 | PR_kwDODFdgUs4zaUta | 70 | open | 0 | scrape-dependents: enable paging through package menu option if present | stanbiryukov 36061055 | Some repos organize network dependents by a Package toggle. This PR adds the ability to page through those options and scrape underlying dependents. | 2022-02-24T15:07:25Z | 2022-02-24T15:07:25Z | 36cca3584a07d88d1e505111d1b23294d66ba73e | 0 | cc8f276a474525e55ed0bcacb0cd8cc560f89614 | 751bc900366ca52e662ea383b858cbf4365093d9 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/70 | ||||||
1179812730 | PR_kwDODEm0Qs5GUoN6 | 70 | open | 0 | Archive: Import Twitter Circle data | sometimes-i-send-pull-requests 26161409 | 2022-12-28T23:33:09Z | 2022-12-28T23:33:09Z | 1d2683101571550adf4a3b7bdf8e9ffbd8b77b61 | 0 | cc80cb31a9afb9a50295d6202f509e5b500607a0 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/70 | |||||||
1179812838 | PR_kwDODEm0Qs5GUoPm | 71 | open | 0 | Archive: Fix "ni devices" typo in importer | sometimes-i-send-pull-requests 26161409 | 2022-12-28T23:33:31Z | 2022-12-28T23:33:31Z | 7905dbd6e36bcabcfd9106c70ebb36ecf9e38260 | 0 | 0d3c62e8ba6e545785069cc0ffc8dc1bad03db80 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/71 | |||||||
357992588 | MDExOlB1bGxSZXF1ZXN0MzU3OTkyNTg4 | 72 | closed | 0 | Fixed implementation of upsert | simonw 9599 | Refs #66 | 2019-12-30T05:08:05Z | 2019-12-30T05:29:24Z | 2019-12-30T05:29:24Z | 2019-12-30T05:29:24Z | 9f47e8b9a4cb788b48b76aee1333c6f3baaebbd6 | 0 | ab8a4bda75fc59871ba8445c6a0fb2332483029c | dc0a62556ec092be7b341c5220e0410354f7cd02 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/72 | ||||
959140599 | PR_kwDODFdgUs45K1L3 | 73 | closed | 0 | Fixing 'NoneType' object has no attribute 'items' | empjustine 1224205 | Under some conditions, GitHub caches removed starred repositories and ends up leaving dangling `None` user references. Traceback (most recent call last): File "/home/dogsheep/dogsheep/github-to-sqlite/bin/github-to-sqlite", line 8, in <module> sys.exit(cli()) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/cli.py", line 181, in starred utils.save_stars(db, user, stars) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 494, in save_stars repo_id = save_repo(db, repo) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 308, in save_repo to_save["owner"] = save_user(db, to_save["owner"]) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 229, in save_user for key, value in user.items() AttributeError: 'NoneType' object has no attribute 'items' | 2022-06-06T13:58:11Z | 2022-07-18T19:40:12Z | 2022-07-18T19:40:12Z | 2022-07-18T19:40:12Z | dbac2e5dd8a562b45d8255a265859cf8020ca22a | 0 | d7c06886f3bb95085a3af3b2a21547e41556cc6e | a6e237f75a4b86963d91dcb5c9582e3a1b3349d6 | CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/73 | ||||
359822773 | MDExOlB1bGxSZXF1ZXN0MzU5ODIyNzcz | 75 | closed | 0 | Explicitly include tests and docs in sdist | jayvdb 15092 | Also exclude 'tests' from runtime installation. | 2020-01-07T04:53:20Z | 2020-01-31T00:21:27Z | 2020-01-31T00:21:27Z | 2020-01-31T00:21:27Z | 0988f2eccc2dfa26b1a55243582222f540a72838 | 0 | 39a836450b23bf2fe1ba9a071a5a9a00a0949cd6 | 59a2e8ebdcbde7e6fb091b0556713ca5a20ea4e7 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/75 | ||||
1047561919 | PR_kwDODFdgUs4-cIa_ | 76 | open | 0 | Add organization support to repos command | OverkillGuy 2757699 | New --organization flag to signify all given "usernames" are private orgs. Adapts API URL to the organization path instead. Not the best implementation, but a first draft to talk around Fixes #75 (badly, no tests, overly vague, untested) | 2022-09-06T13:21:42Z | 2022-09-06T13:59:08Z | 1514acfa87f57261547bc3d7fc4f161e34285d76 | 0 | bb959b46e8a7647755c14dee180fdd5209451954 | ace13ec3d98090d99bd71871c286a4a612c96a50 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/76 | ||||||
369348084 | MDExOlB1bGxSZXF1ZXN0MzY5MzQ4MDg0 | 78 | closed | 0 | New conversions= feature, refs #77 | simonw 9599 | 2020-01-31T00:02:33Z | 2020-09-22T07:48:29Z | 2020-01-31T00:24:31Z | 2020-01-31T00:24:31Z | e8b2b7383bd94659d3b7a857a1414328bc48bc19 | 0 | 58190d67821aaa57c8ca0320a08e3691d6e27344 | 59a2e8ebdcbde7e6fb091b0556713ca5a20ea4e7 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/78 | |||||
369394043 | MDExOlB1bGxSZXF1ZXN0MzY5Mzk0MDQz | 80 | closed | 0 | on_create mechanism for after table creation | simonw 9599 | I need this for `geojson-to-sqlite`, in particular https://github.com/simonw/geojson-to-sqlite/issues/6 | 2020-01-31T03:38:48Z | 2020-01-31T05:08:04Z | 2020-01-31T05:08:04Z | e6dc95d19348e72b28b42e73a18737cb2e4563e0 | 0 | 45bf0c25492c276bde0b85868ffb55f169375bd7 | f7289174e66ae4d91d57de94bbd9d09fabf7aff4 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/80 | |||||
152360740 | MDExOlB1bGxSZXF1ZXN0MTUyMzYwNzQw | 81 | closed | 0 | :fire: Removes DS_Store | jefftriplett 50527 | 2017-11-13T22:07:52Z | 2017-11-14T02:24:54Z | 2017-11-13T22:16:55Z | 2017-11-13T22:16:55Z | 06a826c3188af82f27bb6b4e09cc89b782d30bd6 | 0 | c66d297eac556a7f4fd4dcdb15cfb9466fddac77 | d75f423b6fcfc074b7c6f8f7679da8876f181edd | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/81 | |||||
152522762 | MDExOlB1bGxSZXF1ZXN0MTUyNTIyNzYy | 89 | closed | 0 | SQL syntax highlighting with CodeMirror | tomdyson 15543 | Addresses #13 Future enhancements could include autocompletion of table and column names, e.g. with ```javascript extraKeys: {"Ctrl-Space": "autocomplete"}, hintOptions: {tables: { users: ["name", "score", "birthDate"], countries: ["name", "population", "size"] }} ``` (see https://codemirror.net/doc/manual.html#addon_sql-hint and source at http://codemirror.net/mode/sql/) | 2017-11-14T14:43:33Z | 2017-11-15T02:03:01Z | 2017-11-15T02:03:01Z | 2017-11-15T02:03:01Z | 8252daa4c14d73b4b69e3f2db4576bb39d73c070 | 0 | 7f6ad095e9c41bf24d73b7724d898965c419965b | 075d422c0a1c70259188dfbd940538c67419694a | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/89 | ||||
152631570 | MDExOlB1bGxSZXF1ZXN0MTUyNjMxNTcw | 94 | closed | 0 | Initial add simple prod ready Dockerfile refs #57 | macropin 247192 | Multi-stage build based off official python:3.6-slim Example usage: ``` docker run --rm -t -i -p 9000:8001 -v $(pwd)/db:/db datasette datasette serve /db/chinook.db ``` | 2017-11-14T22:09:09Z | 2017-11-15T03:08:04Z | 2017-11-15T03:08:04Z | 2017-11-15T03:08:04Z | 86755503d26b4a83c2ec59f08ec1b8de791fd954 | 0 | 147195c2fdfa2b984d8f9fc1c6cab6634970a056 | 075d422c0a1c70259188dfbd940538c67419694a | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/94 | ||||
395258687 | MDExOlB1bGxSZXF1ZXN0Mzk1MjU4Njg3 | 96 | closed | 0 | Add type conversion for Panda's Timestamp | b0b5h4rp13 32605365 | Add type conversion for Panda's Timestamp, if Panda library is present in system (thanks for this project, I was about to do the same thing from scratch) | 2020-03-29T14:13:09Z | 2020-03-31T04:40:49Z | 2020-03-31T04:40:48Z | 2020-03-31T04:40:48Z | 8ea626e5fcdc4c9e52f615c6347e68173805f8b4 | 0 | 16ebbd2d494caabd0eeb502f8a944614b464bb12 | 22250a9c735077d6f365b73bf824e6c67b122c83 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/96 | ||||
152870030 | MDExOlB1bGxSZXF1ZXN0MTUyODcwMDMw | 104 | closed | 0 | [WIP] Add publish to heroku support | jacobian 21148 | Refs #90 | 2017-11-15T19:56:22Z | 2017-11-21T20:55:05Z | 2017-11-21T20:55:05Z | 2017-11-21T20:55:05Z | e47117ce1d15f11246a3120aa49de70205713d05 | 0 | de42240afd1e3829fd21cbe77a89ab0eaab20d78 | 0331666e346c68b86de4aa19fbb37f3a408d37ca | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/104 | ||||
152914480 | MDExOlB1bGxSZXF1ZXN0MTUyOTE0NDgw | 107 | closed | 0 | add support for ?field__isnull=1 | raynae 3433657 | Is this what you had in mind for [this issue](https://github.com/simonw/datasette/issues/64)? | 2017-11-15T23:36:36Z | 2017-11-17T15:12:29Z | 2017-11-17T13:29:22Z | 2017-11-17T13:29:22Z | ed2b3f25beac720f14869350baacc5f62b065194 | 0 | 14d5bb572fadbd45973580bd9ad2a16c2bf12909 | b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/107 | ||||
153201945 | MDExOlB1bGxSZXF1ZXN0MTUzMjAxOTQ1 | 114 | closed | 0 | Add spatialite, switch to debian and local build | ingenieroariel 54999 | Improves the Dockerfile to support spatial datasets, work with the local datasette code (Friendly with git tags and Dockerhub) and moves to slim debian, a small image easy to extend via apt packages for sqlite. | 2017-11-17T02:37:09Z | 2017-11-17T03:50:52Z | 2017-11-17T03:50:52Z | 2017-11-17T03:50:52Z | 8b4c600d98b85655b3a1454ebf64f858b5fe54c8 | 0 | 6c6b63d890529eeefcefb7ab126ea3bd7b2315c1 | b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/114 | ||||
153306882 | MDExOlB1bGxSZXF1ZXN0MTUzMzA2ODgy | 115 | closed | 0 | Add keyboard shortcut to execute SQL query | rgieseke 198537 | Very cool tool, thanks a lot! This PR adds a `Shift-Enter` short cut to execute the SQL query. I used CodeMirrors keyboard handling. | 2017-11-17T14:13:33Z | 2017-11-17T15:16:34Z | 2017-11-17T14:22:56Z | 2017-11-17T14:22:56Z | eda848b37f8452dba7913583ef101f39d9b130ba | 0 | bb514164e69400fc0be4e033c27f45f90b1ef651 | ed2b3f25beac720f14869350baacc5f62b065194 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/115 | ||||
153324301 | MDExOlB1bGxSZXF1ZXN0MTUzMzI0MzAx | 117 | closed | 0 | Don't prevent tabbing to `Run SQL` button | rgieseke 198537 | Mentioned in #115 Here you go! | 2017-11-17T15:27:50Z | 2017-11-19T20:30:24Z | 2017-11-18T00:53:43Z | 2017-11-18T00:53:43Z | 6d39429daa4655e3cf7a6a7671493292a20a30a1 | 0 | 7b4d00e87ed8ac931e6f5458599aece1a95d4e82 | eda848b37f8452dba7913583ef101f39d9b130ba | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/117 | ||||
153432045 | MDExOlB1bGxSZXF1ZXN0MTUzNDMyMDQ1 | 118 | closed | 0 | Foreign key information on row and table pages | simonw 9599 | 2017-11-18T03:13:27Z | 2017-11-18T03:15:57Z | 2017-11-18T03:15:50Z | 2017-11-18T03:15:50Z | 1b04662585ea1539014bfbd616a8112b650d5699 | 0 | 2fa60bc5e3c9d75c19e21a2384f52b58e1872fa8 | 6d39429daa4655e3cf7a6a7671493292a20a30a1 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/118 | |||||
445023326 | MDExOlB1bGxSZXF1ZXN0NDQ1MDIzMzI2 | 118 | closed | 0 | Add insert --truncate option | tsibley 79913 | Deletes all rows in the table (if it exists) before inserting new rows. SQLite doesn't implement a TRUNCATE TABLE statement but does optimize an unqualified DELETE FROM. This can be handy if you want to refresh the entire contents of a table but a) don't have a PK (so can't use --replace), b) don't want the table to disappear (even briefly) for other connections, and c) have to handle records that used to exist being deleted. Ideally the replacement of rows would appear instantaneous to other connections by putting the DELETE + INSERT in a transaction, but this is very difficult without breaking other code as the current transaction handling is inconsistent and non-systematic. There exists the possibility for the DELETE to succeed but the INSERT to fail, leaving an empty table. This is not much worse, however, than the current possibility of one chunked INSERT succeeding and being committed while the next chunked INSERT fails, leaving a partially complete operation. | 2020-07-06T21:58:40Z | 2020-07-08T17:26:21Z | 2020-07-08T17:26:21Z | 2020-07-08T17:26:21Z | ae4593316ccf5e42ad26f27033193834a7e696c8 | 0 | 332f7d770b84734dbed4842ab3ed24ee5b687889 | f8277d0fb9c05a88a9ff01d996e31d55f0f0a645 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/118 | ||||
445833908 | MDExOlB1bGxSZXF1ZXN0NDQ1ODMzOTA4 | 120 | closed | 0 | Fix query command's support for DML | tsibley 79913 | See commit messages for details. I ran into this while investigating another feature/issue. | 2020-07-08T01:36:34Z | 2020-07-08T05:14:04Z | 2020-07-08T05:14:04Z | 2020-07-08T05:14:04Z | f8277d0fb9c05a88a9ff01d996e31d55f0f0a645 | 0 | 6a660d12a27864d6ab552e11eef9fd13bc281198 | d0cdaaaf00249230e847be3a3b393ee2689fbfe4 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/120 | ||||
475665984 | MDExOlB1bGxSZXF1ZXN0NDc1NjY1OTg0 | 142 | closed | 0 | insert_all(..., alter=True) should work for new columns introduced after the first 100 records | simonwiles 96218 | Closes #139. | 2020-08-28T22:22:57Z | 2020-08-30T07:28:23Z | 2020-08-28T22:30:14Z | 2020-08-28T22:30:14Z | 947bb7626fd1763608a470adf9cf5f156ef003e9 | 0 | 1b992c7c1e5855caa87c7939efad287052f446f3 | ea87c2b943fdd162c42a900ac0aea5ecc2f4b9d9 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/142 | ||||
154246816 | MDExOlB1bGxSZXF1ZXN0MTU0MjQ2ODE2 | 145 | closed | 0 | Fix pytest version conflict | simonw 9599 | https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3')) | 2017-11-22T20:15:34Z | 2017-11-22T20:17:54Z | 2017-11-22T20:17:52Z | 2017-11-22T20:17:52Z | f96e55bce55d26c4d5b198edc536e1b8e9bbea43 | 0 | e319478c4a34fb5afbff2b2a8c3b9ef9f859bb10 | fa8eb0bf1b113ab17ede9cd107b7c3bd5cde39c3 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/145 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [pull_requests] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [state] TEXT, [locked] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [body] TEXT, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [merged_at] TEXT, [merge_commit_sha] TEXT, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [draft] INTEGER, [head] TEXT, [base] TEXT, [author_association] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [url] TEXT, [merged_by] INTEGER REFERENCES [users]([id]) , [auto_merge] TEXT); CREATE INDEX [idx_pull_requests_merged_by] ON [pull_requests] ([merged_by]); CREATE INDEX [idx_pull_requests_repo] ON [pull_requests] ([repo]); CREATE INDEX [idx_pull_requests_milestone] ON [pull_requests] ([milestone]); CREATE INDEX [idx_pull_requests_assignee] ON [pull_requests] ([assignee]); CREATE INDEX [idx_pull_requests_user] ON [pull_requests] ([user]);