{"action":"closed","number":1604,"pull_request":{"url":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/1604","id":211180324,"node_id":"MDExOlB1bGxSZXF1ZXN0MjExMTgwMzI0","html_url":"https://github.com/Subsurface-divelog/subsurface/pull/1604","diff_url":"https://github.com/Subsurface-divelog/subsurface/pull/1604.diff","patch_url":"https://github.com/Subsurface-divelog/subsurface/pull/1604.patch","issue_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/issues/1604","number":1604,"state":"closed","locked":false,"title":"Usb storage branch","user":{"login":"torvalds","id":1024025,"node_id":"MDQ6VXNlcjEwMjQwMjU=","avatar_url":"https://avatars0.githubusercontent.com/u/1024025?v=4","gravatar_id":"","url":"https://api.github.com/users/torvalds","html_url":"https://github.com/torvalds","followers_url":"https://api.github.com/users/torvalds/followers","following_url":"https://api.github.com/users/torvalds/following{/other_user}","gists_url":"https://api.github.com/users/torvalds/gists{/gist_id}","starred_url":"https://api.github.com/users/torvalds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/torvalds/subscriptions","organizations_url":"https://api.github.com/users/torvalds/orgs","repos_url":"https://api.github.com/users/torvalds/repos","events_url":"https://api.github.com/users/torvalds/events{/privacy}","received_events_url":"https://api.github.com/users/torvalds/received_events","type":"User","site_admin":false},"body":"I'm finally looking at the Garmin Descent Mk1 now that the merge window is over.\r\n\r\nAnd this does *not* add support for it, but this does add the scaffolding to subsurface for libdivecomputer supporting it. Eventually.\r\n\r\nIt basically does a first pass of trying to generalize some of the Uemis downloader support as a \"USB Storage\" support, and remove the special cases that made it Uemis only.\r\n\r\nNOTE! Some special cases still remain, eg the whole OS specific \"find the Uemis mount point\" has just been hacked up into a \"find the Uemis or Garmin mount point\". \r\n\r\nBut the core downloader code now just looks at \"what are the supported download protocols of the dive computer\" and the device node lookup looks at \"do I want DC_PROTOCOL_SERIAL nodes\" etc. It used to have a special \"dc_type\" (which was really \"Uemis or not\") rather than try to look at what protocols the dive computer supported.\r\n\r\nAgain - this should not change anything for existing dive computer support, it's purely preparatory for an eventual libdivecomputer entry for the Garmin Descent.","created_at":"2018-08-27T17:47:16Z","updated_at":"2018-08-27T20:25:44Z","closed_at":"2018-08-27T20:25:44Z","merged_at":null,"merge_commit_sha":"dd73cbbe99831200340bd40602ddc37f22c45603","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":700900224,"node_id":"MDU6TGFiZWw3MDA5MDAyMjQ=","url":"https://api.github.com/repos/Subsurface-divelog/subsurface/labels/core","name":"core","color":"d93f0b","default":false},{"id":871444111,"node_id":"MDU6TGFiZWw4NzE0NDQxMTE=","url":"https://api.github.com/repos/Subsurface-divelog/subsurface/labels/usb","name":"usb","color":"1d76db","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/1604/commits","review_comments_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/1604/comments","review_comment_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/issues/1604/comments","statuses_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/statuses/996234d56c49b8194d25ac9537da0f5df36060f5","head":{"label":"torvalds:usb-storage","ref":"usb-storage","sha":"996234d56c49b8194d25ac9537da0f5df36060f5","user":{"login":"torvalds","id":1024025,"node_id":"MDQ6VXNlcjEwMjQwMjU=","avatar_url":"https://avatars0.githubusercontent.com/u/1024025?v=4","gravatar_id":"","url":"https://api.github.com/users/torvalds","html_url":"https://github.com/torvalds","followers_url":"https://api.github.com/users/torvalds/followers","following_url":"https://api.github.com/users/torvalds/following{/other_user}","gists_url":"https://api.github.com/users/torvalds/gists{/gist_id}","starred_url":"https://api.github.com/users/torvalds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/torvalds/subscriptions","organizations_url":"https://api.github.com/users/torvalds/orgs","repos_url":"https://api.github.com/users/torvalds/repos","events_url":"https://api.github.com/users/torvalds/events{/privacy}","received_events_url":"https://api.github.com/users/torvalds/received_events","type":"User","site_admin":false},"repo":{"id":78665021,"node_id":"MDEwOlJlcG9zaXRvcnk3ODY2NTAyMQ==","name":"subsurface-for-dirk","full_name":"torvalds/subsurface-for-dirk","owner":{"login":"torvalds","id":1024025,"node_id":"MDQ6VXNlcjEwMjQwMjU=","avatar_url":"https://avatars0.githubusercontent.com/u/1024025?v=4","gravatar_id":"","url":"https://api.github.com/users/torvalds","html_url":"https://github.com/torvalds","followers_url":"https://api.github.com/users/torvalds/followers","following_url":"https://api.github.com/users/torvalds/following{/other_user}","gists_url":"https://api.github.com/users/torvalds/gists{/gist_id}","starred_url":"https://api.github.com/users/torvalds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/torvalds/subscriptions","organizations_url":"https://api.github.com/users/torvalds/orgs","repos_url":"https://api.github.com/users/torvalds/repos","events_url":"https://api.github.com/users/torvalds/events{/privacy}","received_events_url":"https://api.github.com/users/torvalds/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/torvalds/subsurface-for-dirk","description":"Do not use - the real upstream is  Subsurface-divelog/subsurface","fork":true,"url":"https://api.github.com/repos/torvalds/subsurface-for-dirk","forks_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/forks","keys_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/teams","hooks_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/hooks","issue_events_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/issues/events{/number}","events_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/events","assignees_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/assignees{/user}","branches_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/branches{/branch}","tags_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/tags","blobs_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/git/refs{/sha}","trees_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/statuses/{sha}","languages_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/languages","stargazers_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/stargazers","contributors_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/contributors","subscribers_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/subscribers","subscription_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/subscription","commits_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/commits{/sha}","git_commits_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/git/commits{/sha}","comments_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/comments{/number}","issue_comment_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/issues/comments{/number}","contents_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/contents/{+path}","compare_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/merges","archive_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/downloads","issues_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/issues{/number}","pulls_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/pulls{/number}","milestones_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/milestones{/number}","notifications_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/labels{/name}","releases_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/releases{/id}","deployments_url":"https://api.github.com/repos/torvalds/subsurface-for-dirk/deployments","created_at":"2017-01-11T18:03:01Z","updated_at":"2018-07-07T09:11:20Z","pushed_at":"2018-08-27T17:40:43Z","git_url":"git://github.com/torvalds/subsurface-for-dirk.git","ssh_url":"git@github.com:torvalds/subsurface-for-dirk.git","clone_url":"https://github.com/torvalds/subsurface-for-dirk.git","svn_url":"https://github.com/torvalds/subsurface-for-dirk","homepage":"https://subsurface-divelog.org","size":96097,"stargazers_count":57,"watchers_count":57,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":24,"open_issues":0,"watchers":57,"default_branch":"master"}},"base":{"label":"Subsurface-divelog:master","ref":"master","sha":"0566f344a91531105630be45ca31c2e3128812c8","user":{"login":"Subsurface-divelog","id":24829199,"node_id":"MDQ6VXNlcjI0ODI5MTk5","avatar_url":"https://avatars1.githubusercontent.com/u/24829199?v=4","gravatar_id":"","url":"https://api.github.com/users/Subsurface-divelog","html_url":"https://github.com/Subsurface-divelog","followers_url":"https://api.github.com/users/Subsurface-divelog/followers","following_url":"https://api.github.com/users/Subsurface-divelog/following{/other_user}","gists_url":"https://api.github.com/users/Subsurface-divelog/gists{/gist_id}","starred_url":"https://api.github.com/users/Subsurface-divelog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Subsurface-divelog/subscriptions","organizations_url":"https://api.github.com/users/Subsurface-divelog/orgs","repos_url":"https://api.github.com/users/Subsurface-divelog/repos","events_url":"https://api.github.com/users/Subsurface-divelog/events{/privacy}","received_events_url":"https://api.github.com/users/Subsurface-divelog/received_events","type":"User","site_admin":false},"repo":{"id":2319498,"node_id":"MDEwOlJlcG9zaXRvcnkyMzE5NDk4","name":"subsurface","full_name":"Subsurface-divelog/subsurface","owner":{"login":"Subsurface-divelog","id":24829199,"node_id":"MDQ6VXNlcjI0ODI5MTk5","avatar_url":"https://avatars1.githubusercontent.com/u/24829199?v=4","gravatar_id":"","url":"https://api.github.com/users/Subsurface-divelog","html_url":"https://github.com/Subsurface-divelog","followers_url":"https://api.github.com/users/Subsurface-divelog/followers","following_url":"https://api.github.com/users/Subsurface-divelog/following{/other_user}","gists_url":"https://api.github.com/users/Subsurface-divelog/gists{/gist_id}","starred_url":"https://api.github.com/users/Subsurface-divelog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Subsurface-divelog/subscriptions","organizations_url":"https://api.github.com/users/Subsurface-divelog/orgs","repos_url":"https://api.github.com/users/Subsurface-divelog/repos","events_url":"https://api.github.com/users/Subsurface-divelog/events{/privacy}","received_events_url":"https://api.github.com/users/Subsurface-divelog/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Subsurface-divelog/subsurface","description":"This is the official upstream of the Subsurface divelog program","fork":false,"url":"https://api.github.com/repos/Subsurface-divelog/subsurface","forks_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/forks","keys_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/teams","hooks_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/hooks","issue_events_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/issues/events{/number}","events_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/events","assignees_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/assignees{/user}","branches_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/branches{/branch}","tags_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/tags","blobs_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/git/refs{/sha}","trees_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/statuses/{sha}","languages_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/languages","stargazers_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/stargazers","contributors_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/contributors","subscribers_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/subscribers","subscription_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/subscription","commits_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/commits{/sha}","git_commits_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/git/commits{/sha}","comments_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/comments{/number}","issue_comment_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/issues/comments{/number}","contents_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/contents/{+path}","compare_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/merges","archive_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/downloads","issues_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/issues{/number}","pulls_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls{/number}","milestones_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/milestones{/number}","notifications_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/labels{/name}","releases_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/releases{/id}","deployments_url":"https://api.github.com/repos/Subsurface-divelog/subsurface/deployments","created_at":"2011-09-03T15:27:51Z","updated_at":"2018-08-27T06:08:55Z","pushed_at":"2018-08-27T19:46:44Z","git_url":"git://github.com/Subsurface-divelog/subsurface.git","ssh_url":"git@github.com:Subsurface-divelog/subsurface.git","clone_url":"https://github.com/Subsurface-divelog/subsurface.git","svn_url":"https://github.com/Subsurface-divelog/subsurface","homepage":"https://subsurface-divelog.org","size":96202,"stargazers_count":1417,"watchers_count":1417,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":357,"mirror_url":null,"archived":false,"open_issues_count":93,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":357,"open_issues":93,"watchers":1417,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/1604"},"html":{"href":"https://github.com/Subsurface-divelog/subsurface/pull/1604"},"issue":{"href":"https://api.github.com/repos/Subsurface-divelog/subsurface/issues/1604"},"comments":{"href":"https://api.github.com/repos/Subsurface-divelog/subsurface/issues/1604/comments"},"review_comments":{"href":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/1604/comments"},"review_comment":{"href":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Subsurface-divelog/subsurface/pulls/1604/commits"},"statuses":{"href":"https://api.github.com/repos/Subsurface-divelog/subsurface/statuses/996234d56c49b8194d25ac9537da0f5df36060f5"}},"author_association":"COLLABORATOR","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"unstable","merged_by":null,"comments":3,"review_comments":0,"maintainer_can_modify":false,"commits":2,"additions":45,"deletions":34,"changed_files":12}}
{"actor":{"display_login":"torvalds"}}