joeyh/github-backup — Issue #2: JSON error on attempted update
Author: ianmcorvidae
Created: 2012-01-31 09:13:34+00:00
State: open

Lots of type errors, results in very little being backed up (I'm getting only watchers).

log:

```
Switched to branch 'github'
problem accessing API for git://github.com/kepstin/riker.git: JsonError "Given something besides a String on the JSON: [{\"updated_at\":\"2012-01-31T08:42:23Z\",\"comments\":0,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/bb82047b8a0bdf018f053debeb8cf665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"bb82047b8a0bdf018f053debeb8cf665\",\"login\":\"ianmcorvidae\",\"url\":\"https://api.github.com/users/ianmcorvidae\",\"id\":106004},\"html_url\":\"https://github.com/kepstin/riker/issues/10\",\"title\":\"Allow using a DB other than SQLite\",\"created_at\":\"2012-01-31T08:42:23Z\",\"labels\":[],\"number\":10,\"body\":\"Not that SQLite isn't fantastic, but some of us already have PostgreSQL or MySQL installed on our systems (e.g., those of us who run musicbrainz-server already!) and plus, your database backend should be all nice and abstracted anyway.\",\"assignee\":null,\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":null,\"id\":3032695,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/10\"},{\"updated_at\":\"2012-01-31T08:08:46Z\",\"comments\":0,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"html_url\":\"https://github.com/kepstin/riker/issues/9\",\"title\":\"Support library deduplication\",\"created_at\":\"2012-01-31T08:05:20Z\",\"labels\":[{\"color\":\"02d7e1\",\"name\":\"wishlist\",\"url\":\"https://api.github.com/repos/kepstin/riker/labels/wishlist\"}],\"number\":9,\"body\":\"Detect when multiple copies of the same recording are available, and notify the user. Optionally allow selecting a preferred version that will be used in place of another version - e.g. because it's higher quality.\\r\\nSupport shuffling recordings rather than file, and pick the best file if multiple files are available for a recording.\\r\\nAlso important: support a mode where when you're playing a release in order, it will always use the file from that release rather than an alternate version (e.g. for gapless or album replaygain)\",\"assignee\":null,\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":null,\"id\":3032450,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/9\"},{\"updated_at\":\"2012-01-31T06:53:53Z\",\"comments\":0,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"html_url\":\"https://github.com/kepstin/riker/issues/8\",\"title\":\"Autogenerate vala bindings for libmusicbrainz-4\",\"created_at\":\"2012-01-31T06:53:53Z\",\"labels\":[],\"number\":8,\"body\":\"I received a helpful email with a script to generate the bindings which could be adapted. Integrate it, in order to complete the bindings.\",\"assignee\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":{\"due_on\":\"2012-02-29T08:00:00Z\",\"state\":\"open\",\"closed_issues\":0,\"creator\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"title\":\"2012-02 Code Drop\",\"created_at\":\"2012-01-31T06:44:33Z\",\"open_issues\":3,\"number\":2,\"description\":\"\",\"url\":\"https://api.github.com/repos/kepstin/riker/milestones/2\"},\"id\":3032034,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/8\"},{\"updated_at\":\"2012-01-31T06:52:45Z\",\"comments\":0,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"html_url\":\"https://github.com/kepstin/riker/issues/7\",\"title\":\"Design database schema for AR storage.\",\"created_at\":\"2012-01-31T06:52:45Z\",\"labels\":[],\"number\":7,\"body\":\"\",\"assignee\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":{\"due_on\":\"2012-02-29T08:00:00Z\",\"state\":\"open\",\"closed_issues\":0,\"creator\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"title\":\"2012-02 Code Drop\",\"created_at\":\"2012-01-31T06:44:33Z\",\"open_issues\":3,\"number\":2,\"description\":\"\",\"url\":\"https://api.github.com/repos/kepstin/riker/milestones/2\"},\"id\":3032030,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/7\"},{\"updated_at\":\"2012-01-31T06:48:51Z\",\"comments\":0,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"html_url\":\"https://github.com/kepstin/riker/issues/6\",\"title\":\"Support importing recordings\",\"created_at\":\"2012-01-31T06:48:51Z\",\"labels\":[],\"number\":6,\"body\":\"Now that the core of artist importing is working, add support for importing recordings. At the very least, standalone recordings.\",\"assignee\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":{\"due_on\":\"2012-02-29T08:00:00Z\",\"state\":\"open\",\"closed_issues\":0,\"creator\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"title\":\"2012-02 Code Drop\",\"created_at\":\"2012-01-31T06:44:33Z\",\"open_issues\":3,\"number\":2,\"description\":\"\",\"url\":\"https://api.github.com/repos/kepstin/riker/milestones/2\"},\"id\":3032008,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/6\"},{\"updated_at\":\"2012-01-31T06:50:06Z\",\"comments\":2,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/bb82047b8a0bdf018f053debeb8cf665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"bb82047b8a0bdf018f053debeb8cf665\",\"login\":\"ianmcorvidae\",\"url\":\"https://api.github.com/users/ianmcorvidae\",\"id\":106004},\"html_url\":\"https://github.com/kepstin/riker/issues/5\",\"title\":\"daemon mode/MPD compatibility mode\",\"created_at\":\"2012-01-31T06:34:59Z\",\"labels\":[{\"color\":\"02d7e1\",\"name\":\"wishlist\",\"url\":\"https://api.github.com/repos/kepstin/riker/labels/wishlist\"}],\"number\":5,\"body\":\"It would be awesome if I could keep using my MPD client to connect to Riker, at least when I'm not doing things like constructing complicated fancy playlists or looking at ARs -- i.e., for the times when I really _do_ just want a \\\"normal music player.\\\"\\r\\n\\r\\nAlso, all my scripts assume MPD already, how else would I advertise what I'm listening to in IRC?!\",\"assignee\":null,\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":null,\"id\":3031925,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/5\"},{\"updated_at\":\"2012-01-31T07:09:20Z\",\"comments\":2,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/001951288ec62dc56ec4a3908c3348f6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"001951288ec62dc56ec4a3908c3348f6\",\"login\":\"jacobbrett\",\"url\":\"https://api.github.com/users/jacobbrett\",\"id\":1274826},\"html_url\":\"https://github.com/kepstin/riker/issues/4\",\"title\":\"Gapless playback support\",\"created_at\":\"2012-01-31T05:38:09Z\",\"labels\":[{\"color\":\"02d7e1\",\"name\":\"wishlist\",\"url\":\"https://api.github.com/repos/kepstin/riker/labels/wishlist\"}],\"number\":4,\"body\":\"http://en.wikipedia.org/wiki/Gapless_playback \195\160 la foobar2000.\",\"assignee\":null,\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":null,\"id\":3031611,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/4\"},{\"updated_at\":\"2012-01-31T06:42:15Z\",\"comments\":2,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/bb82047b8a0bdf018f053debeb8cf665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"bb82047b8a0bdf018f053debeb8cf665\",\"login\":\"ianmcorvidae\",\"url\":\"https://api.github.com/users/ianmcorvidae\",\"id\":106004},\"html_url\":\"https://github.com/kepstin/riker/issues/3\",\"title\":\"fine-grained local statistics/logging\",\"created_at\":\"2012-01-31T05:37:43Z\",\"labels\":[{\"color\":\"02d7e1\",\"name\":\"wishlist\",\"url\":\"https://api.github.com/repos/kepstin/riker/labels/wishlist\"}],\"number\":3,\"body\":\"I'd like to have finer-grained local statistics than last.fm can provide; the sorts of questions I'm trying to answer here are:\\r\\n\\r\\n* which songs do I frequently skip (probably mostly in random listening) early enough that they don't scrobble\\r\\n* time-based listening tracking\\r\\n* tracking of songs shorter than last.fm's 30-second cutoff\\r\\n* which sequences of songs do I like (i.e., pairs of songs that I frequently don't skip past)\\r\\n* full-album listens in sequence versus random plays (partially covered by the above)\\r\\n* stats normalized against various quantities like number of songs (or net playtime of songs) by the artist in my collection or the amount of time I've had the artist in my collection (\\\"Would The Beatles still be at the top of my list if I'd had X, Y, Z artists back in 2007?\\\")\\r\\n\\r\\nMostly I only care about the data collection for early releases; implementing specific statistics can be done later if the data's there.\\r\\n\",\"assignee\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":null,\"id\":3031610,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/3\"},{\"updated_at\":\"2012-01-31T05:25:52Z\",\"comments\":0,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/bb82047b8a0bdf018f053debeb8cf665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"bb82047b8a0bdf018f053debeb8cf665\",\"login\":\"ianmcorvidae\",\"url\":\"https://api.github.com/users/ianmcorvidae\",\"id\":106004},\"html_url\":\"https://github.com/kepstin/riker/issues/2\",\"title\":\"replaygain support\",\"created_at\":\"2012-01-31T05:25:24Z\",\"labels\":[{\"color\":\"02d7e1\",\"name\":\"wishlist\",\"url\":\"https://api.github.com/repos/kepstin/riker/labels/wishlist\"}],\"number\":2,\"body\":\"I know this to be planned via IRC, but replaygain support is a must!\",\"assignee\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":{\"due_on\":null,\"state\":\"open\",\"closed_issues\":0,\"creator\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"title\":\"Feature Release 1\",\"created_at\":\"2012-01-31T05:20:22Z\",\"open_issues\":2,\"number\":1,\"description\":\"\",\"url\":\"https://api.github.com/repos/kepstin/riker/milestones/1\"},\"id\":3031545,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/2\"},{\"updated_at\":\"2012-01-31T05:25:27Z\",\"comments\":0,\"state\":\"open\",\"user\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/bb82047b8a0bdf018f053debeb8cf665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"bb82047b8a0bdf018f053debeb8cf665\",\"login\":\"ianmcorvidae\",\"url\":\"https://api.github.com/users/ianmcorvidae\",\"id\":106004},\"html_url\":\"https://github.com/kepstin/riker/issues/1\",\"title\":\"last.fm scrobbling\",\"created_at\":\"2012-01-31T05:24:15Z\",\"labels\":[{\"color\":\"02d7e1\",\"name\":\"wishlist\",\"url\":\"https://api.github.com/repos/kepstin/riker/labels/wishlist\"}],\"number\":1,\"body\":\"I'm sure it's in the plans, but riker had darn well better be able to scrobble. Ideally, it should be able to scrobble to multiple configurable URLs, to support things like libre.fm (and potentially other sites).\",\"assignee\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"patch_url\":null,\"diff_url\":null},\"milestone\":{\"due_on\":null,\"state\":\"open\",\"closed_issues\":0,\"creator\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"title\":\"Feature Release 1\",\"created_at\":\"2012-01-31T05:20:22Z\",\"open_issues\":2,\"number\":1,\"description\":\"\",\"url\":\"https://api.github.com/repos/kepstin/riker/milestones/1\"},\"id\":3031539,\"url\":\"https://api.github.com/repos/kepstin/riker/issues/1\"}]"
problem accessing API for git://github.com/kepstin/riker.git: JsonError "Given something besides a String on the JSON: [{\"state\":\"open\",\"creator\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"open_issues\":3,\"title\":\"2012-02 Code Drop\",\"created_at\":\"2012-01-31T06:44:33Z\",\"number\":2,\"description\":\"\",\"due_on\":\"2012-02-29T08:00:00Z\",\"closed_issues\":0,\"url\":\"https://api.github.com/repos/kepstin/riker/milestones/2\"},{\"state\":\"open\",\"creator\":{\"avatar_url\":\"https://secure.gravatar.com/avatar/d3ec3cbb9cbd3d292c1abff8d93d1087?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"d3ec3cbb9cbd3d292c1abff8d93d1087\",\"login\":\"kepstin\",\"url\":\"https://api.github.com/users/kepstin\",\"id\":38788},\"open_issues\":2,\"title\":\"Feature Release 1\",\"created_at\":\"2012-01-31T05:20:22Z\",\"number\":1,\"description\":\"\",\"due_on\":null,\"closed_issues\":0,\"url\":\"https://api.github.com/repos/kepstin/riker/milestones/1\"}]"
# On branch github
nothing to commit (working directory clean)
Command xargs ["-0","git","--git-dir=/home/ianmcorvidae/Source/riker/.git","--work-tree=/home/ianmcorvidae/Source/riker","commit","-m","github-backup"] failed; exit code 123
Switched to branch 'master'
no new forks
gathering metadata for git://github.com/kepstin/riker.git
github-backup: user error (Command xargs ["-0","git","--git-dir=/home/ianmcorvidae/Source/riker/.git","--work-tree=/home/ianmcorvidae/Source/riker","commit","-m","github-backup"] failed; exit code 123)
```