{"action":"closed","number":373,"pull_request":{"url":"https://api.github.com/repos/ssbc/scuttlebot/pulls/373","id":106237570,"html_url":"https://github.com/ssbc/scuttlebot/pull/373","diff_url":"https://github.com/ssbc/scuttlebot/pull/373.diff","patch_url":"https://github.com/ssbc/scuttlebot/pull/373.patch","issue_url":"https://api.github.com/repos/ssbc/scuttlebot/issues/373","number":373,"state":"closed","locked":false,"title":"automatically remove old local peers from peer table","user":{"login":"mmckegg","id":66834,"avatar_url":"https://avatars.githubusercontent.com/u/66834?v=3","gravatar_id":"","url":"https://api.github.com/users/mmckegg","html_url":"https://github.com/mmckegg","followers_url":"https://api.github.com/users/mmckegg/followers","following_url":"https://api.github.com/users/mmckegg/following{/other_user}","gists_url":"https://api.github.com/users/mmckegg/gists{/gist_id}","starred_url":"https://api.github.com/users/mmckegg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmckegg/subscriptions","organizations_url":"https://api.github.com/users/mmckegg/orgs","repos_url":"https://api.github.com/users/mmckegg/repos","events_url":"https://api.github.com/users/mmckegg/events{/privacy}","received_events_url":"https://api.github.com/users/mmckegg/received_events","type":"User","site_admin":false},"body":"Currently if sbot discovers a local peer, it will keep it in the peer table forever, even if that local peer goes offline or you change networks. This has a few problems (including sbot trying to connect to missing peers), but also makes it hard to easily access a list of local peers. \r\n\r\n**This PR adds an automatic cleanup to `local` that will remove peers from the `gossip` table that haven't broadcasted in over 10 seconds.**\r\n\r\nWith this PR in place, `patchwork-next` will no longer have to override the gossip and local modules and will be able to work properly on top of a standard sbot server.\r\n\r\n<img width=\"350\" alt=\"screen shot 2017-02-15 at 4 32 21 pm\" src=\"https://cloud.githubusercontent.com/assets/66834/22959573/5ef1ed1c-f39c-11e6-8505-f5bf314bc695.png\">\r\n\r\ncc @ahdinosaur @dominictarr @mixmix ","created_at":"2017-02-15T03:33:17Z","updated_at":"2017-02-20T05:44:08Z","closed_at":"2017-02-20T05:44:08Z","merged_at":"2017-02-20T05:44:08Z","merge_commit_sha":"b0609082c30aaf46abee07cf683bc5f149ba8a6d","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ssbc/scuttlebot/pulls/373/commits","review_comments_url":"https://api.github.com/repos/ssbc/scuttlebot/pulls/373/comments","review_comment_url":"https://api.github.com/repos/ssbc/scuttlebot/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ssbc/scuttlebot/issues/373/comments","statuses_url":"https://api.github.com/repos/ssbc/scuttlebot/statuses/b0609082c30aaf46abee07cf683bc5f149ba8a6d","head":{"label":"ssbc:remove-old-local-peers","ref":"remove-old-local-peers","sha":"b0609082c30aaf46abee07cf683bc5f149ba8a6d","user":{"login":"ssbc","id":10190339,"avatar_url":"https://avatars.githubusercontent.com/u/10190339?v=3","gravatar_id":"","url":"https://api.github.com/users/ssbc","html_url":"https://github.com/ssbc","followers_url":"https://api.github.com/users/ssbc/followers","following_url":"https://api.github.com/users/ssbc/following{/other_user}","gists_url":"https://api.github.com/users/ssbc/gists{/gist_id}","starred_url":"https://api.github.com/users/ssbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ssbc/subscriptions","organizations_url":"https://api.github.com/users/ssbc/orgs","repos_url":"https://api.github.com/users/ssbc/repos","events_url":"https://api.github.com/users/ssbc/events{/privacy}","received_events_url":"https://api.github.com/users/ssbc/received_events","type":"Organization","site_admin":false},"repo":{"id":25894747,"name":"scuttlebot","full_name":"ssbc/scuttlebot","owner":{"login":"ssbc","id":10190339,"avatar_url":"https://avatars.githubusercontent.com/u/10190339?v=3","gravatar_id":"","url":"https://api.github.com/users/ssbc","html_url":"https://github.com/ssbc","followers_url":"https://api.github.com/users/ssbc/followers","following_url":"https://api.github.com/users/ssbc/following{/other_user}","gists_url":"https://api.github.com/users/ssbc/gists{/gist_id}","starred_url":"https://api.github.com/users/ssbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ssbc/subscriptions","organizations_url":"https://api.github.com/users/ssbc/orgs","repos_url":"https://api.github.com/users/ssbc/repos","events_url":"https://api.github.com/users/ssbc/events{/privacy}","received_events_url":"https://api.github.com/users/ssbc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ssbc/scuttlebot","description":"The gossip and replication server for Secure Scuttlebutt - a distributed social network","fork":false,"url":"https://api.github.com/repos/ssbc/scuttlebot","forks_url":"https://api.github.com/repos/ssbc/scuttlebot/forks","keys_url":"https://api.github.com/repos/ssbc/scuttlebot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ssbc/scuttlebot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ssbc/scuttlebot/teams","hooks_url":"https://api.github.com/repos/ssbc/scuttlebot/hooks","issue_events_url":"https://api.github.com/repos/ssbc/scuttlebot/issues/events{/number}","events_url":"https://api.github.com/repos/ssbc/scuttlebot/events","assignees_url":"https://api.github.com/repos/ssbc/scuttlebot/assignees{/user}","branches_url":"https://api.github.com/repos/ssbc/scuttlebot/branches{/branch}","tags_url":"https://api.github.com/repos/ssbc/scuttlebot/tags","blobs_url":"https://api.github.com/repos/ssbc/scuttlebot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ssbc/scuttlebot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ssbc/scuttlebot/git/refs{/sha}","trees_url":"https://api.github.com/repos/ssbc/scuttlebot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ssbc/scuttlebot/statuses/{sha}","languages_url":"https://api.github.com/repos/ssbc/scuttlebot/languages","stargazers_url":"https://api.github.com/repos/ssbc/scuttlebot/stargazers","contributors_url":"https://api.github.com/repos/ssbc/scuttlebot/contributors","subscribers_url":"https://api.github.com/repos/ssbc/scuttlebot/subscribers","subscription_url":"https://api.github.com/repos/ssbc/scuttlebot/subscription","commits_url":"https://api.github.com/repos/ssbc/scuttlebot/commits{/sha}","git_commits_url":"https://api.github.com/repos/ssbc/scuttlebot/git/commits{/sha}","comments_url":"https://api.github.com/repos/ssbc/scuttlebot/comments{/number}","issue_comment_url":"https://api.github.com/repos/ssbc/scuttlebot/issues/comments{/number}","contents_url":"https://api.github.com/repos/ssbc/scuttlebot/contents/{+path}","compare_url":"https://api.github.com/repos/ssbc/scuttlebot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ssbc/scuttlebot/merges","archive_url":"https://api.github.com/repos/ssbc/scuttlebot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ssbc/scuttlebot/downloads","issues_url":"https://api.github.com/repos/ssbc/scuttlebot/issues{/number}","pulls_url":"https://api.github.com/repos/ssbc/scuttlebot/pulls{/number}","milestones_url":"https://api.github.com/repos/ssbc/scuttlebot/milestones{/number}","notifications_url":"https://api.github.com/repos/ssbc/scuttlebot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ssbc/scuttlebot/labels{/name}","releases_url":"https://api.github.com/repos/ssbc/scuttlebot/releases{/id}","deployments_url":"https://api.github.com/repos/ssbc/scuttlebot/deployments","created_at":"2014-10-28T23:23:16Z","updated_at":"2017-02-19T21:44:21Z","pushed_at":"2017-02-20T05:44:07Z","git_url":"git://github.com/ssbc/scuttlebot.git","ssh_url":"git@github.com:ssbc/scuttlebot.git","clone_url":"https://github.com/ssbc/scuttlebot.git","svn_url":"https://github.com/ssbc/scuttlebot","homepage":"http://scuttlebot.io/","size":1500,"stargazers_count":297,"watchers_count":297,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":42,"mirror_url":null,"open_issues_count":84,"forks":42,"open_issues":84,"watchers":297,"default_branch":"master"}},"base":{"label":"ssbc:master","ref":"master","sha":"4272c738a2c294379159e2e9be9e34c02a9f05cd","user":{"login":"ssbc","id":10190339,"avatar_url":"https://avatars.githubusercontent.com/u/10190339?v=3","gravatar_id":"","url":"https://api.github.com/users/ssbc","html_url":"https://github.com/ssbc","followers_url":"https://api.github.com/users/ssbc/followers","following_url":"https://api.github.com/users/ssbc/following{/other_user}","gists_url":"https://api.github.com/users/ssbc/gists{/gist_id}","starred_url":"https://api.github.com/users/ssbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ssbc/subscriptions","organizations_url":"https://api.github.com/users/ssbc/orgs","repos_url":"https://api.github.com/users/ssbc/repos","events_url":"https://api.github.com/users/ssbc/events{/privacy}","received_events_url":"https://api.github.com/users/ssbc/received_events","type":"Organization","site_admin":false},"repo":{"id":25894747,"name":"scuttlebot","full_name":"ssbc/scuttlebot","owner":{"login":"ssbc","id":10190339,"avatar_url":"https://avatars.githubusercontent.com/u/10190339?v=3","gravatar_id":"","url":"https://api.github.com/users/ssbc","html_url":"https://github.com/ssbc","followers_url":"https://api.github.com/users/ssbc/followers","following_url":"https://api.github.com/users/ssbc/following{/other_user}","gists_url":"https://api.github.com/users/ssbc/gists{/gist_id}","starred_url":"https://api.github.com/users/ssbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ssbc/subscriptions","organizations_url":"https://api.github.com/users/ssbc/orgs","repos_url":"https://api.github.com/users/ssbc/repos","events_url":"https://api.github.com/users/ssbc/events{/privacy}","received_events_url":"https://api.github.com/users/ssbc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ssbc/scuttlebot","description":"The gossip and replication server for Secure Scuttlebutt - a distributed social network","fork":false,"url":"https://api.github.com/repos/ssbc/scuttlebot","forks_url":"https://api.github.com/repos/ssbc/scuttlebot/forks","keys_url":"https://api.github.com/repos/ssbc/scuttlebot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ssbc/scuttlebot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ssbc/scuttlebot/teams","hooks_url":"https://api.github.com/repos/ssbc/scuttlebot/hooks","issue_events_url":"https://api.github.com/repos/ssbc/scuttlebot/issues/events{/number}","events_url":"https://api.github.com/repos/ssbc/scuttlebot/events","assignees_url":"https://api.github.com/repos/ssbc/scuttlebot/assignees{/user}","branches_url":"https://api.github.com/repos/ssbc/scuttlebot/branches{/branch}","tags_url":"https://api.github.com/repos/ssbc/scuttlebot/tags","blobs_url":"https://api.github.com/repos/ssbc/scuttlebot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ssbc/scuttlebot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ssbc/scuttlebot/git/refs{/sha}","trees_url":"https://api.github.com/repos/ssbc/scuttlebot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ssbc/scuttlebot/statuses/{sha}","languages_url":"https://api.github.com/repos/ssbc/scuttlebot/languages","stargazers_url":"https://api.github.com/repos/ssbc/scuttlebot/stargazers","contributors_url":"https://api.github.com/repos/ssbc/scuttlebot/contributors","subscribers_url":"https://api.github.com/repos/ssbc/scuttlebot/subscribers","subscription_url":"https://api.github.com/repos/ssbc/scuttlebot/subscription","commits_url":"https://api.github.com/repos/ssbc/scuttlebot/commits{/sha}","git_commits_url":"https://api.github.com/repos/ssbc/scuttlebot/git/commits{/sha}","comments_url":"https://api.github.com/repos/ssbc/scuttlebot/comments{/number}","issue_comment_url":"https://api.github.com/repos/ssbc/scuttlebot/issues/comments{/number}","contents_url":"https://api.github.com/repos/ssbc/scuttlebot/contents/{+path}","compare_url":"https://api.github.com/repos/ssbc/scuttlebot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ssbc/scuttlebot/merges","archive_url":"https://api.github.com/repos/ssbc/scuttlebot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ssbc/scuttlebot/downloads","issues_url":"https://api.github.com/repos/ssbc/scuttlebot/issues{/number}","pulls_url":"https://api.github.com/repos/ssbc/scuttlebot/pulls{/number}","milestones_url":"https://api.github.com/repos/ssbc/scuttlebot/milestones{/number}","notifications_url":"https://api.github.com/repos/ssbc/scuttlebot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ssbc/scuttlebot/labels{/name}","releases_url":"https://api.github.com/repos/ssbc/scuttlebot/releases{/id}","deployments_url":"https://api.github.com/repos/ssbc/scuttlebot/deployments","created_at":"2014-10-28T23:23:16Z","updated_at":"2017-02-19T21:44:21Z","pushed_at":"2017-02-20T05:44:07Z","git_url":"git://github.com/ssbc/scuttlebot.git","ssh_url":"git@github.com:ssbc/scuttlebot.git","clone_url":"https://github.com/ssbc/scuttlebot.git","svn_url":"https://github.com/ssbc/scuttlebot","homepage":"http://scuttlebot.io/","size":1500,"stargazers_count":297,"watchers_count":297,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":42,"mirror_url":null,"open_issues_count":84,"forks":42,"open_issues":84,"watchers":297,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ssbc/scuttlebot/pulls/373"},"html":{"href":"https://github.com/ssbc/scuttlebot/pull/373"},"issue":{"href":"https://api.github.com/repos/ssbc/scuttlebot/issues/373"},"comments":{"href":"https://api.github.com/repos/ssbc/scuttlebot/issues/373/comments"},"review_comments":{"href":"https://api.github.com/repos/ssbc/scuttlebot/pulls/373/comments"},"review_comment":{"href":"https://api.github.com/repos/ssbc/scuttlebot/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ssbc/scuttlebot/pulls/373/commits"},"statuses":{"href":"https://api.github.com/repos/ssbc/scuttlebot/statuses/b0609082c30aaf46abee07cf683bc5f149ba8a6d"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"dominictarr","id":259374,"avatar_url":"https://avatars.githubusercontent.com/u/259374?v=3","gravatar_id":"","url":"https://api.github.com/users/dominictarr","html_url":"https://github.com/dominictarr","followers_url":"https://api.github.com/users/dominictarr/followers","following_url":"https://api.github.com/users/dominictarr/following{/other_user}","gists_url":"https://api.github.com/users/dominictarr/gists{/gist_id}","starred_url":"https://api.github.com/users/dominictarr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dominictarr/subscriptions","organizations_url":"https://api.github.com/users/dominictarr/orgs","repos_url":"https://api.github.com/users/dominictarr/repos","events_url":"https://api.github.com/users/dominictarr/events{/privacy}","received_events_url":"https://api.github.com/users/dominictarr/received_events","type":"User","site_admin":false},"comments":5,"review_comments":0,"maintainer_can_modify":false,"commits":2,"additions":42,"deletions":8,"changed_files":4}}
{"actor":{"display_login":"dominictarr"}}