{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/comments/180307267","pull_request_review_id":110656096,"id":180307267,"diff_hunk":"@@ -88,7 +108,8 @@ def tearDown(self):\n \n     def test_save_violations(self):\n         \"\"\"Test violations can be saved.\"\"\"\n-        saved_violations = populate_db().list()\n+        access, _ = populate_db()","path":"tests/services/scanner/scanner_dao_test.py","position":67,"original_position":67,"commit_id":"70e57017c775d7712287e90fbc7eef1f8c634fed","original_commit_id":"70e57017c775d7712287e90fbc7eef1f8c634fed","user":{"login":"blueandgold","id":6977544,"avatar_url":"https://avatars3.githubusercontent.com/u/6977544?v=4","gravatar_id":"","url":"https://api.github.com/users/blueandgold","html_url":"https://github.com/blueandgold","followers_url":"https://api.github.com/users/blueandgold/followers","following_url":"https://api.github.com/users/blueandgold/following{/other_user}","gists_url":"https://api.github.com/users/blueandgold/gists{/gist_id}","starred_url":"https://api.github.com/users/blueandgold/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blueandgold/subscriptions","organizations_url":"https://api.github.com/users/blueandgold/orgs","repos_url":"https://api.github.com/users/blueandgold/repos","events_url":"https://api.github.com/users/blueandgold/events{/privacy}","received_events_url":"https://api.github.com/users/blueandgold/received_events","type":"User","site_admin":false},"body":"`access` should be `violation_access` to match what is in the application code.  Please change this everywhere.","created_at":"2018-04-10T06:18:54Z","updated_at":"2018-04-10T06:26:10Z","html_url":"https://github.com/GoogleCloudPlatform/forseti-security/pull/1352#discussion_r180307267","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/comments/180307267"},"html":{"href":"https://github.com/GoogleCloudPlatform/forseti-security/pull/1352#discussion_r180307267"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352","id":179371101,"html_url":"https://github.com/GoogleCloudPlatform/forseti-security/pull/1352","diff_url":"https://github.com/GoogleCloudPlatform/forseti-security/pull/1352.diff","patch_url":"https://github.com/GoogleCloudPlatform/forseti-security/pull/1352.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/issues/1352","number":1352,"state":"open","locked":false,"title":"Only notify of violations from the most recent scanner run","user":{"login":"arbeit","id":1688051,"avatar_url":"https://avatars2.githubusercontent.com/u/1688051?v=4","gravatar_id":"","url":"https://api.github.com/users/arbeit","html_url":"https://github.com/arbeit","followers_url":"https://api.github.com/users/arbeit/followers","following_url":"https://api.github.com/users/arbeit/following{/other_user}","gists_url":"https://api.github.com/users/arbeit/gists{/gist_id}","starred_url":"https://api.github.com/users/arbeit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arbeit/subscriptions","organizations_url":"https://api.github.com/users/arbeit/orgs","repos_url":"https://api.github.com/users/arbeit/repos","events_url":"https://api.github.com/users/arbeit/events{/privacy}","received_events_url":"https://api.github.com/users/arbeit/received_events","type":"User","site_admin":false},"body":"Multiple, subsequent scanner runs may all add rows to the `violations` table. We only want to be notified of the violations found by the **most recent** scanner run, however.\r\n\r\nThis PR has been fully tested and\r\n * adds a `scanner_start_time` column to the `violations` table\r\n * extends the scanner `DAO` logic so that the\r\n   * `scanner_start_time` value is *the same* for all `violations` rows inserted in the course of a scanner run (across all scanners)\r\n   * `list()` method only returns the violations from the most recent scanner run to the notifier `run()` function.\r\n * extends the scanner `run()` function to initialize the `scanner_start_time` timestamp before actually running the scanners\r\n \r\nFixes issue #1324.","created_at":"2018-04-04T12:15:07Z","updated_at":"2018-04-10T06:26:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"36b2638eb8c72e0d82b0175f8b744d3b748da70d","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":658852504,"url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/labels/cla:%20yes","name":"cla: yes","color":"ededed","default":false},{"id":769538991,"url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/labels/status:%20in-progress","name":"status: in-progress","color":"1d76db","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/issues/1352/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/statuses/70e57017c775d7712287e90fbc7eef1f8c634fed","head":{"label":"arbeit:only-recent-scanner-run-1324","ref":"only-recent-scanner-run-1324","sha":"70e57017c775d7712287e90fbc7eef1f8c634fed","user":{"login":"arbeit","id":1688051,"avatar_url":"https://avatars2.githubusercontent.com/u/1688051?v=4","gravatar_id":"","url":"https://api.github.com/users/arbeit","html_url":"https://github.com/arbeit","followers_url":"https://api.github.com/users/arbeit/followers","following_url":"https://api.github.com/users/arbeit/following{/other_user}","gists_url":"https://api.github.com/users/arbeit/gists{/gist_id}","starred_url":"https://api.github.com/users/arbeit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arbeit/subscriptions","organizations_url":"https://api.github.com/users/arbeit/orgs","repos_url":"https://api.github.com/users/arbeit/repos","events_url":"https://api.github.com/users/arbeit/events{/privacy}","received_events_url":"https://api.github.com/users/arbeit/received_events","type":"User","site_admin":false},"repo":{"id":100593681,"name":"forseti-security","full_name":"arbeit/forseti-security","owner":{"login":"arbeit","id":1688051,"avatar_url":"https://avatars2.githubusercontent.com/u/1688051?v=4","gravatar_id":"","url":"https://api.github.com/users/arbeit","html_url":"https://github.com/arbeit","followers_url":"https://api.github.com/users/arbeit/followers","following_url":"https://api.github.com/users/arbeit/following{/other_user}","gists_url":"https://api.github.com/users/arbeit/gists{/gist_id}","starred_url":"https://api.github.com/users/arbeit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arbeit/subscriptions","organizations_url":"https://api.github.com/users/arbeit/orgs","repos_url":"https://api.github.com/users/arbeit/repos","events_url":"https://api.github.com/users/arbeit/events{/privacy}","received_events_url":"https://api.github.com/users/arbeit/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/arbeit/forseti-security","description":null,"fork":true,"url":"https://api.github.com/repos/arbeit/forseti-security","forks_url":"https://api.github.com/repos/arbeit/forseti-security/forks","keys_url":"https://api.github.com/repos/arbeit/forseti-security/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arbeit/forseti-security/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arbeit/forseti-security/teams","hooks_url":"https://api.github.com/repos/arbeit/forseti-security/hooks","issue_events_url":"https://api.github.com/repos/arbeit/forseti-security/issues/events{/number}","events_url":"https://api.github.com/repos/arbeit/forseti-security/events","assignees_url":"https://api.github.com/repos/arbeit/forseti-security/assignees{/user}","branches_url":"https://api.github.com/repos/arbeit/forseti-security/branches{/branch}","tags_url":"https://api.github.com/repos/arbeit/forseti-security/tags","blobs_url":"https://api.github.com/repos/arbeit/forseti-security/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arbeit/forseti-security/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arbeit/forseti-security/git/refs{/sha}","trees_url":"https://api.github.com/repos/arbeit/forseti-security/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arbeit/forseti-security/statuses/{sha}","languages_url":"https://api.github.com/repos/arbeit/forseti-security/languages","stargazers_url":"https://api.github.com/repos/arbeit/forseti-security/stargazers","contributors_url":"https://api.github.com/repos/arbeit/forseti-security/contributors","subscribers_url":"https://api.github.com/repos/arbeit/forseti-security/subscribers","subscription_url":"https://api.github.com/repos/arbeit/forseti-security/subscription","commits_url":"https://api.github.com/repos/arbeit/forseti-security/commits{/sha}","git_commits_url":"https://api.github.com/repos/arbeit/forseti-security/git/commits{/sha}","comments_url":"https://api.github.com/repos/arbeit/forseti-security/comments{/number}","issue_comment_url":"https://api.github.com/repos/arbeit/forseti-security/issues/comments{/number}","contents_url":"https://api.github.com/repos/arbeit/forseti-security/contents/{+path}","compare_url":"https://api.github.com/repos/arbeit/forseti-security/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arbeit/forseti-security/merges","archive_url":"https://api.github.com/repos/arbeit/forseti-security/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arbeit/forseti-security/downloads","issues_url":"https://api.github.com/repos/arbeit/forseti-security/issues{/number}","pulls_url":"https://api.github.com/repos/arbeit/forseti-security/pulls{/number}","milestones_url":"https://api.github.com/repos/arbeit/forseti-security/milestones{/number}","notifications_url":"https://api.github.com/repos/arbeit/forseti-security/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arbeit/forseti-security/labels{/name}","releases_url":"https://api.github.com/repos/arbeit/forseti-security/releases{/id}","deployments_url":"https://api.github.com/repos/arbeit/forseti-security/deployments","created_at":"2017-08-17T10:54:52Z","updated_at":"2017-08-17T10:54:55Z","pushed_at":"2018-04-09T20:07:57Z","git_url":"git://github.com/arbeit/forseti-security.git","ssh_url":"git@github.com:arbeit/forseti-security.git","clone_url":"https://github.com/arbeit/forseti-security.git","svn_url":"https://github.com/arbeit/forseti-security","homepage":"http://forsetisecurity.org","size":22444,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"2.0-dev"}},"base":{"label":"GoogleCloudPlatform:2.0-dev","ref":"2.0-dev","sha":"dcaada5d02863d7bbafb5fee8dea84bf3b6d4c77","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":82210080,"name":"forseti-security","full_name":"GoogleCloudPlatform/forseti-security","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/forseti-security","description":"Forseti Security","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/deployments","created_at":"2017-02-16T18:01:26Z","updated_at":"2018-04-10T01:08:47Z","pushed_at":"2018-04-10T04:27:12Z","git_url":"git://github.com/GoogleCloudPlatform/forseti-security.git","ssh_url":"git@github.com:GoogleCloudPlatform/forseti-security.git","clone_url":"https://github.com/GoogleCloudPlatform/forseti-security.git","svn_url":"https://github.com/GoogleCloudPlatform/forseti-security","homepage":"https://forsetisecurity.org","size":23456,"stargazers_count":289,"watchers_count":289,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":83,"mirror_url":null,"archived":false,"open_issues_count":197,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":83,"open_issues":197,"watchers":289,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352"},"html":{"href":"https://github.com/GoogleCloudPlatform/forseti-security/pull/1352"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/issues/1352"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/issues/1352/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/pulls/1352/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/forseti-security/statuses/70e57017c775d7712287e90fbc7eef1f8c634fed"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"blueandgold"}}