{"action":"created","comment":{"url":"https://api.github.com/repos/google/keytransparency/pulls/comments/130377489","pull_request_review_id":53245403,"id":130377489,"diff_hunk":"@@ -0,0 +1,170 @@\n+// Copyright 2016 Google Inc. All Rights Reserved.\n+//\n+// Licensed under the Apache License, Version 2.0 (the \"License\");\n+// you may not use this file except in compliance with the License.\n+// You may obtain a copy of the License at\n+//\n+//     http://www.apache.org/licenses/LICENSE-2.0\n+//\n+// Unless required by applicable law or agreed to in writing, software\n+// distributed under the License is distributed on an \"AS IS\" BASIS,\n+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+// See the License for the specific language governing permissions and\n+// limitations under the License.\n+\n+package main\n+\n+import (\n+\t\"flag\"\n+\t\"net\"\n+\t\"net/http\"\n+\t\"strings\"\n+\t\"time\"\n+\n+\tmopb \"github.com/google/keytransparency/impl/proto/monitor_v1_service\"","path":"cmd/keytransparency-monitor/main.go","position":24,"original_position":24,"commit_id":"54a6a1659b9c64df27a00afa45c7d6c05d8ebac3","original_commit_id":"54a6a1659b9c64df27a00afa45c7d6c05d8ebac3","user":{"login":"gdbelvin","id":198478,"avatar_url":"https://avatars1.githubusercontent.com/u/198478?v=4","gravatar_id":"","url":"https://api.github.com/users/gdbelvin","html_url":"https://github.com/gdbelvin","followers_url":"https://api.github.com/users/gdbelvin/followers","following_url":"https://api.github.com/users/gdbelvin/following{/other_user}","gists_url":"https://api.github.com/users/gdbelvin/gists{/gist_id}","starred_url":"https://api.github.com/users/gdbelvin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gdbelvin/subscriptions","organizations_url":"https://api.github.com/users/gdbelvin/orgs","repos_url":"https://api.github.com/users/gdbelvin/repos","events_url":"https://api.github.com/users/gdbelvin/events{/privacy}","received_events_url":"https://api.github.com/users/gdbelvin/received_events","type":"User","site_admin":false},"body":"please place this import group at the bottom of `import(`","created_at":"2017-07-31T14:59:56Z","updated_at":"2017-07-31T14:59:56Z","html_url":"https://github.com/google/keytransparency/pull/709#discussion_r130377489","pull_request_url":"https://api.github.com/repos/google/keytransparency/pulls/709","_links":{"self":{"href":"https://api.github.com/repos/google/keytransparency/pulls/comments/130377489"},"html":{"href":"https://github.com/google/keytransparency/pull/709#discussion_r130377489"},"pull_request":{"href":"https://api.github.com/repos/google/keytransparency/pulls/709"}}},"pull_request":{"url":"https://api.github.com/repos/google/keytransparency/pulls/709","id":131194680,"html_url":"https://github.com/google/keytransparency/pull/709","diff_url":"https://github.com/google/keytransparency/pull/709.diff","patch_url":"https://github.com/google/keytransparency/pull/709.patch","issue_url":"https://api.github.com/repos/google/keytransparency/issues/709","number":709,"state":"open","locked":false,"title":"WIP: minimalistic Monitor ","user":{"login":"Liamsi","id":7441766,"avatar_url":"https://avatars3.githubusercontent.com/u/7441766?v=4","gravatar_id":"","url":"https://api.github.com/users/Liamsi","html_url":"https://github.com/Liamsi","followers_url":"https://api.github.com/users/Liamsi/followers","following_url":"https://api.github.com/users/Liamsi/following{/other_user}","gists_url":"https://api.github.com/users/Liamsi/gists{/gist_id}","starred_url":"https://api.github.com/users/Liamsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Liamsi/subscriptions","organizations_url":"https://api.github.com/users/Liamsi/orgs","repos_url":"https://api.github.com/users/Liamsi/repos","events_url":"https://api.github.com/users/Liamsi/events{/privacy}","received_events_url":"https://api.github.com/users/Liamsi/received_events","type":"User","site_admin":false},"body":"This will be split up into small separate PRs (related to #679).\r\n\r\n-------\r\n\r\nImplemented (but work in progress):\r\n- fetch mutations from server\r\n- main function\r\n- Docker/docker-compose\r\n- basic HTTP/grpc API (will be renamed according to [this](https://cloud.google.com/apis/design/resources))\r\n- signing and publishing result/\"gossiping\"\r\n\r\nMissing:\r\n- \"cleanup\"\r\n- verification (of mutations, SMHs)\r\n- proper storage of received SMH \r\n\r\n\r\n","created_at":"2017-07-18T21:46:58Z","updated_at":"2017-07-31T14:59:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7b2ede0641db51b16b480ad7d3bda9134ae790b1","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/google/keytransparency/milestones/16","html_url":"https://github.com/google/keytransparency/milestone/16","labels_url":"https://api.github.com/repos/google/keytransparency/milestones/16/labels","id":2538523,"number":16,"title":"Build Monitor","description":"Monitor will verify that the merkle tree roots and leaf histories are correct","creator":{"login":"gdbelvin","id":198478,"avatar_url":"https://avatars1.githubusercontent.com/u/198478?v=4","gravatar_id":"","url":"https://api.github.com/users/gdbelvin","html_url":"https://github.com/gdbelvin","followers_url":"https://api.github.com/users/gdbelvin/followers","following_url":"https://api.github.com/users/gdbelvin/following{/other_user}","gists_url":"https://api.github.com/users/gdbelvin/gists{/gist_id}","starred_url":"https://api.github.com/users/gdbelvin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gdbelvin/subscriptions","organizations_url":"https://api.github.com/users/gdbelvin/orgs","repos_url":"https://api.github.com/users/gdbelvin/repos","events_url":"https://api.github.com/users/gdbelvin/events{/privacy}","received_events_url":"https://api.github.com/users/gdbelvin/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":5,"state":"open","created_at":"2017-05-23T15:44:27Z","updated_at":"2017-07-18T21:47:12Z","due_on":"2017-08-11T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/google/keytransparency/pulls/709/commits","review_comments_url":"https://api.github.com/repos/google/keytransparency/pulls/709/comments","review_comment_url":"https://api.github.com/repos/google/keytransparency/pulls/comments{/number}","comments_url":"https://api.github.com/repos/google/keytransparency/issues/709/comments","statuses_url":"https://api.github.com/repos/google/keytransparency/statuses/54a6a1659b9c64df27a00afa45c7d6c05d8ebac3","head":{"label":"Liamsi:mvp_monitor","ref":"mvp_monitor","sha":"54a6a1659b9c64df27a00afa45c7d6c05d8ebac3","user":{"login":"Liamsi","id":7441766,"avatar_url":"https://avatars3.githubusercontent.com/u/7441766?v=4","gravatar_id":"","url":"https://api.github.com/users/Liamsi","html_url":"https://github.com/Liamsi","followers_url":"https://api.github.com/users/Liamsi/followers","following_url":"https://api.github.com/users/Liamsi/following{/other_user}","gists_url":"https://api.github.com/users/Liamsi/gists{/gist_id}","starred_url":"https://api.github.com/users/Liamsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Liamsi/subscriptions","organizations_url":"https://api.github.com/users/Liamsi/orgs","repos_url":"https://api.github.com/users/Liamsi/repos","events_url":"https://api.github.com/users/Liamsi/events{/privacy}","received_events_url":"https://api.github.com/users/Liamsi/received_events","type":"User","site_admin":false},"repo":{"id":92180276,"name":"keytransparency","full_name":"Liamsi/keytransparency","owner":{"login":"Liamsi","id":7441766,"avatar_url":"https://avatars3.githubusercontent.com/u/7441766?v=4","gravatar_id":"","url":"https://api.github.com/users/Liamsi","html_url":"https://github.com/Liamsi","followers_url":"https://api.github.com/users/Liamsi/followers","following_url":"https://api.github.com/users/Liamsi/following{/other_user}","gists_url":"https://api.github.com/users/Liamsi/gists{/gist_id}","starred_url":"https://api.github.com/users/Liamsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Liamsi/subscriptions","organizations_url":"https://api.github.com/users/Liamsi/orgs","repos_url":"https://api.github.com/users/Liamsi/repos","events_url":"https://api.github.com/users/Liamsi/events{/privacy}","received_events_url":"https://api.github.com/users/Liamsi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Liamsi/keytransparency","description":"A transparent and secure way to look up public keys.","fork":true,"url":"https://api.github.com/repos/Liamsi/keytransparency","forks_url":"https://api.github.com/repos/Liamsi/keytransparency/forks","keys_url":"https://api.github.com/repos/Liamsi/keytransparency/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Liamsi/keytransparency/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Liamsi/keytransparency/teams","hooks_url":"https://api.github.com/repos/Liamsi/keytransparency/hooks","issue_events_url":"https://api.github.com/repos/Liamsi/keytransparency/issues/events{/number}","events_url":"https://api.github.com/repos/Liamsi/keytransparency/events","assignees_url":"https://api.github.com/repos/Liamsi/keytransparency/assignees{/user}","branches_url":"https://api.github.com/repos/Liamsi/keytransparency/branches{/branch}","tags_url":"https://api.github.com/repos/Liamsi/keytransparency/tags","blobs_url":"https://api.github.com/repos/Liamsi/keytransparency/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Liamsi/keytransparency/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Liamsi/keytransparency/git/refs{/sha}","trees_url":"https://api.github.com/repos/Liamsi/keytransparency/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Liamsi/keytransparency/statuses/{sha}","languages_url":"https://api.github.com/repos/Liamsi/keytransparency/languages","stargazers_url":"https://api.github.com/repos/Liamsi/keytransparency/stargazers","contributors_url":"https://api.github.com/repos/Liamsi/keytransparency/contributors","subscribers_url":"https://api.github.com/repos/Liamsi/keytransparency/subscribers","subscription_url":"https://api.github.com/repos/Liamsi/keytransparency/subscription","commits_url":"https://api.github.com/repos/Liamsi/keytransparency/commits{/sha}","git_commits_url":"https://api.github.com/repos/Liamsi/keytransparency/git/commits{/sha}","comments_url":"https://api.github.com/repos/Liamsi/keytransparency/comments{/number}","issue_comment_url":"https://api.github.com/repos/Liamsi/keytransparency/issues/comments{/number}","contents_url":"https://api.github.com/repos/Liamsi/keytransparency/contents/{+path}","compare_url":"https://api.github.com/repos/Liamsi/keytransparency/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Liamsi/keytransparency/merges","archive_url":"https://api.github.com/repos/Liamsi/keytransparency/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Liamsi/keytransparency/downloads","issues_url":"https://api.github.com/repos/Liamsi/keytransparency/issues{/number}","pulls_url":"https://api.github.com/repos/Liamsi/keytransparency/pulls{/number}","milestones_url":"https://api.github.com/repos/Liamsi/keytransparency/milestones{/number}","notifications_url":"https://api.github.com/repos/Liamsi/keytransparency/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Liamsi/keytransparency/labels{/name}","releases_url":"https://api.github.com/repos/Liamsi/keytransparency/releases{/id}","deployments_url":"https://api.github.com/repos/Liamsi/keytransparency/deployments","created_at":"2017-05-23T14:06:38Z","updated_at":"2017-05-23T14:06:40Z","pushed_at":"2017-07-31T14:56:53Z","git_url":"git://github.com/Liamsi/keytransparency.git","ssh_url":"git@github.com:Liamsi/keytransparency.git","clone_url":"https://github.com/Liamsi/keytransparency.git","svn_url":"https://github.com/Liamsi/keytransparency","homepage":"https://security.googleblog.com/2017/01/security-through-transparency.html","size":22295,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"google:master","ref":"master","sha":"142a834769e003a154841f760511550e4c25fd2c","user":{"login":"google","id":1342004,"avatar_url":"https://avatars1.githubusercontent.com/u/1342004?v=4","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"repo":{"id":37165115,"name":"keytransparency","full_name":"google/keytransparency","owner":{"login":"google","id":1342004,"avatar_url":"https://avatars1.githubusercontent.com/u/1342004?v=4","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/google/keytransparency","description":"A transparent and secure way to look up public keys.","fork":false,"url":"https://api.github.com/repos/google/keytransparency","forks_url":"https://api.github.com/repos/google/keytransparency/forks","keys_url":"https://api.github.com/repos/google/keytransparency/keys{/key_id}","collaborators_url":"https://api.github.com/repos/google/keytransparency/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/google/keytransparency/teams","hooks_url":"https://api.github.com/repos/google/keytransparency/hooks","issue_events_url":"https://api.github.com/repos/google/keytransparency/issues/events{/number}","events_url":"https://api.github.com/repos/google/keytransparency/events","assignees_url":"https://api.github.com/repos/google/keytransparency/assignees{/user}","branches_url":"https://api.github.com/repos/google/keytransparency/branches{/branch}","tags_url":"https://api.github.com/repos/google/keytransparency/tags","blobs_url":"https://api.github.com/repos/google/keytransparency/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/google/keytransparency/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/google/keytransparency/git/refs{/sha}","trees_url":"https://api.github.com/repos/google/keytransparency/git/trees{/sha}","statuses_url":"https://api.github.com/repos/google/keytransparency/statuses/{sha}","languages_url":"https://api.github.com/repos/google/keytransparency/languages","stargazers_url":"https://api.github.com/repos/google/keytransparency/stargazers","contributors_url":"https://api.github.com/repos/google/keytransparency/contributors","subscribers_url":"https://api.github.com/repos/google/keytransparency/subscribers","subscription_url":"https://api.github.com/repos/google/keytransparency/subscription","commits_url":"https://api.github.com/repos/google/keytransparency/commits{/sha}","git_commits_url":"https://api.github.com/repos/google/keytransparency/git/commits{/sha}","comments_url":"https://api.github.com/repos/google/keytransparency/comments{/number}","issue_comment_url":"https://api.github.com/repos/google/keytransparency/issues/comments{/number}","contents_url":"https://api.github.com/repos/google/keytransparency/contents/{+path}","compare_url":"https://api.github.com/repos/google/keytransparency/compare/{base}...{head}","merges_url":"https://api.github.com/repos/google/keytransparency/merges","archive_url":"https://api.github.com/repos/google/keytransparency/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/google/keytransparency/downloads","issues_url":"https://api.github.com/repos/google/keytransparency/issues{/number}","pulls_url":"https://api.github.com/repos/google/keytransparency/pulls{/number}","milestones_url":"https://api.github.com/repos/google/keytransparency/milestones{/number}","notifications_url":"https://api.github.com/repos/google/keytransparency/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/google/keytransparency/labels{/name}","releases_url":"https://api.github.com/repos/google/keytransparency/releases{/id}","deployments_url":"https://api.github.com/repos/google/keytransparency/deployments","created_at":"2015-06-09T23:55:20Z","updated_at":"2017-07-31T07:58:26Z","pushed_at":"2017-07-31T14:56:54Z","git_url":"git://github.com/google/keytransparency.git","ssh_url":"git@github.com:google/keytransparency.git","clone_url":"https://github.com/google/keytransparency.git","svn_url":"https://github.com/google/keytransparency","homepage":"https://security.googleblog.com/2017/01/security-through-transparency.html","size":22130,"stargazers_count":1142,"watchers_count":1142,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":69,"mirror_url":null,"open_issues_count":54,"forks":69,"open_issues":54,"watchers":1142,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/google/keytransparency/pulls/709"},"html":{"href":"https://github.com/google/keytransparency/pull/709"},"issue":{"href":"https://api.github.com/repos/google/keytransparency/issues/709"},"comments":{"href":"https://api.github.com/repos/google/keytransparency/issues/709/comments"},"review_comments":{"href":"https://api.github.com/repos/google/keytransparency/pulls/709/comments"},"review_comment":{"href":"https://api.github.com/repos/google/keytransparency/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/google/keytransparency/pulls/709/commits"},"statuses":{"href":"https://api.github.com/repos/google/keytransparency/statuses/54a6a1659b9c64df27a00afa45c7d6c05d8ebac3"}}}}
{"actor":{"display_login":"gdbelvin"}}