{"action":"created","comment":{"url":"https://api.github.com/repos/18F/identity-idp/pulls/comments/214444397","pull_request_review_id":151511428,"id":214444397,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNDQ0NDM5Nw==","diff_hunk":"@@ -0,0 +1,96 @@\n+module Idv\n+  # Ignore instance variable assumption on @user_locked_out :reek:InstanceVariableAssumption\n+  class SendPhoneConfirmationOtp\n+    attr_accessor :user, :idv_session, :locale","path":"app/services/idv/send_phone_confirmation_otp.rb","position":4,"original_position":4,"commit_id":"32e61b21678389ff7e5b937efb311152e6651c72","original_commit_id":"32e61b21678389ff7e5b937efb311152e6651c72","user":{"login":"monfresh","id":811150,"node_id":"MDQ6VXNlcjgxMTE1MA==","avatar_url":"https://avatars1.githubusercontent.com/u/811150?v=4","gravatar_id":"","url":"https://api.github.com/users/monfresh","html_url":"https://github.com/monfresh","followers_url":"https://api.github.com/users/monfresh/followers","following_url":"https://api.github.com/users/monfresh/following{/other_user}","gists_url":"https://api.github.com/users/monfresh/gists{/gist_id}","starred_url":"https://api.github.com/users/monfresh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/monfresh/subscriptions","organizations_url":"https://api.github.com/users/monfresh/orgs","repos_url":"https://api.github.com/users/monfresh/repos","events_url":"https://api.github.com/users/monfresh/events{/privacy}","received_events_url":"https://api.github.com/users/monfresh/received_events","type":"User","site_admin":false},"body":"Since these methods are not meant to be writable outside of the class, what do you think about replacing this with a private `attr_reader`, and using `@user = user` etc. in the `initialize` method?","created_at":"2018-08-31T18:47:13Z","updated_at":"2018-08-31T18:47:14Z","html_url":"https://github.com/18F/identity-idp/pull/2430#discussion_r214444397","pull_request_url":"https://api.github.com/repos/18F/identity-idp/pulls/2430","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/18F/identity-idp/pulls/comments/214444397"},"html":{"href":"https://github.com/18F/identity-idp/pull/2430#discussion_r214444397"},"pull_request":{"href":"https://api.github.com/repos/18F/identity-idp/pulls/2430"}}},"pull_request":{"url":"https://api.github.com/repos/18F/identity-idp/pulls/2430","id":208375455,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4Mzc1NDU1","html_url":"https://github.com/18F/identity-idp/pull/2430","diff_url":"https://github.com/18F/identity-idp/pull/2430.diff","patch_url":"https://github.com/18F/identity-idp/pull/2430.patch","issue_url":"https://api.github.com/repos/18F/identity-idp/issues/2430","number":2430,"state":"open","locked":false,"title":"LG-528 Use IdV specific phone otp confirmation","user":{"login":"jmhooper","id":963654,"node_id":"MDQ6VXNlcjk2MzY1NA==","avatar_url":"https://avatars1.githubusercontent.com/u/963654?v=4","gravatar_id":"","url":"https://api.github.com/users/jmhooper","html_url":"https://github.com/jmhooper","followers_url":"https://api.github.com/users/jmhooper/followers","following_url":"https://api.github.com/users/jmhooper/following{/other_user}","gists_url":"https://api.github.com/users/jmhooper/gists{/gist_id}","starred_url":"https://api.github.com/users/jmhooper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmhooper/subscriptions","organizations_url":"https://api.github.com/users/jmhooper/orgs","repos_url":"https://api.github.com/users/jmhooper/repos","events_url":"https://api.github.com/users/jmhooper/events{/privacy}","received_events_url":"https://api.github.com/users/jmhooper/received_events","type":"User","site_admin":false},"body":"**Why**: The otp verification controller serves multiple puprose, phone\r\nconfirmation during sign up, sign in, edit phone, and idv. As a result\r\nthe logic is very complex and error prone. This commit creates a\r\nseparate controller specific for the IdV phone OTP confirmation since it\r\ndiffers a good bit from the other use cases for phone confirmation.\r\n\r\nThis commit will need to be followed up by another to remove the old\r\ncode. I didn't do that here because the diff is already pretty\r\nsubstantial without it.\r\n\r\nHi! Before submitting your PR for review, and/or before merging it, please\r\ngo through the checklists below. These represent the more critical elements\r\nof our code quality guidelines. The rest of the list can be found in\r\n[CONTRIBUTING.md]\r\n\r\n[CONTRIBUTING.md]: https://github.com/18F/identity-idp/blob/master/CONTRIBUTING.md#pull-request-guidelines\r\n\r\n### Controllers\r\n\r\n- [x] When adding a new controller that requires the user to be fully\r\nauthenticated, make sure to add `before_action :confirm_two_factor_authenticated`\r\nas the first callback.\r\n\r\n### Database\r\n\r\n- [x] Unsafe migrations are implemented over several PRs and over several\r\ndeploys to avoid production errors. The [strong_migrations](https://github.com/ankane/strong_migrations#the-zero-downtime-way) gem\r\nwill warn you about unsafe migrations and has great step-by-step instructions\r\nfor various scenarios.\r\n\r\n- [x] Indexes were added if necessary. This article provides a good overview\r\nof [indexes in Rails](https://goo.gl/1DARYi).\r\n\r\n- [x] Verified that the changes don't affect other apps (such as the dashboard)\r\n\r\n- [x] When relevant, a rake task is created to populate the necessary DB columns\r\nin the various environments right before deploying, taking into account the users\r\nwho might not have interacted with this column yet (such as users who have not\r\nset a password yet)\r\n\r\n- [x] Migrations against existing tables have been tested against a copy of the\r\nproduction database. See #2127 for an example when a migration caused deployment\r\nissues. In that case, all the migration did was add a new column and an index to\r\nthe Users table, which might seem innocuous.\r\n\r\n### Encryption\r\n\r\n- [x] The changes are compatible with data that was encrypted with the old code.\r\n\r\n### Routes\r\n\r\n- [x] GET requests are not vulnerable to CSRF attacks (i.e. they don't change\r\nstate or result in destructive behavior).\r\n\r\n### Session\r\n\r\n- [x] When adding user data to the session, use the `user_session` helper\r\ninstead of the `session` helper so the data does not persist beyond the user's\r\nsession.\r\n\r\n### Testing\r\n\r\n- [x] Tests added for this feature/bug\r\n- [x] Prefer feature/integration specs over controller specs\r\n- [x] When adding code that reads data, write tests for nil values, empty strings,\r\nand invalid inputs.\r\n","created_at":"2018-08-14T18:48:11Z","updated_at":"2018-08-31T18:47:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ced655831e0ac36fee4b6ccb45b19dcdaf1fd609","assignee":null,"assignees":[],"requested_reviewers":[{"login":"jgsmith-usds","id":25034073,"node_id":"MDQ6VXNlcjI1MDM0MDcz","avatar_url":"https://avatars2.githubusercontent.com/u/25034073?v=4","gravatar_id":"","url":"https://api.github.com/users/jgsmith-usds","html_url":"https://github.com/jgsmith-usds","followers_url":"https://api.github.com/users/jgsmith-usds/followers","following_url":"https://api.github.com/users/jgsmith-usds/following{/other_user}","gists_url":"https://api.github.com/users/jgsmith-usds/gists{/gist_id}","starred_url":"https://api.github.com/users/jgsmith-usds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgsmith-usds/subscriptions","organizations_url":"https://api.github.com/users/jgsmith-usds/orgs","repos_url":"https://api.github.com/users/jgsmith-usds/repos","events_url":"https://api.github.com/users/jgsmith-usds/events{/privacy}","received_events_url":"https://api.github.com/users/jgsmith-usds/received_events","type":"User","site_admin":false},{"login":"stevegsa","id":34244063,"node_id":"MDQ6VXNlcjM0MjQ0MDYz","avatar_url":"https://avatars0.githubusercontent.com/u/34244063?v=4","gravatar_id":"","url":"https://api.github.com/users/stevegsa","html_url":"https://github.com/stevegsa","followers_url":"https://api.github.com/users/stevegsa/followers","following_url":"https://api.github.com/users/stevegsa/following{/other_user}","gists_url":"https://api.github.com/users/stevegsa/gists{/gist_id}","starred_url":"https://api.github.com/users/stevegsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevegsa/subscriptions","organizations_url":"https://api.github.com/users/stevegsa/orgs","repos_url":"https://api.github.com/users/stevegsa/repos","events_url":"https://api.github.com/users/stevegsa/events{/privacy}","received_events_url":"https://api.github.com/users/stevegsa/received_events","type":"User","site_admin":false},{"login":"mryenq","id":39062019,"node_id":"MDQ6VXNlcjM5MDYyMDE5","avatar_url":"https://avatars2.githubusercontent.com/u/39062019?v=4","gravatar_id":"","url":"https://api.github.com/users/mryenq","html_url":"https://github.com/mryenq","followers_url":"https://api.github.com/users/mryenq/followers","following_url":"https://api.github.com/users/mryenq/following{/other_user}","gists_url":"https://api.github.com/users/mryenq/gists{/gist_id}","starred_url":"https://api.github.com/users/mryenq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mryenq/subscriptions","organizations_url":"https://api.github.com/users/mryenq/orgs","repos_url":"https://api.github.com/users/mryenq/repos","events_url":"https://api.github.com/users/mryenq/events{/privacy}","received_events_url":"https://api.github.com/users/mryenq/received_events","type":"User","site_admin":false},{"login":"gregory-casamento","id":41695798,"node_id":"MDQ6VXNlcjQxNjk1Nzk4","avatar_url":"https://avatars0.githubusercontent.com/u/41695798?v=4","gravatar_id":"","url":"https://api.github.com/users/gregory-casamento","html_url":"https://github.com/gregory-casamento","followers_url":"https://api.github.com/users/gregory-casamento/followers","following_url":"https://api.github.com/users/gregory-casamento/following{/other_user}","gists_url":"https://api.github.com/users/gregory-casamento/gists{/gist_id}","starred_url":"https://api.github.com/users/gregory-casamento/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregory-casamento/subscriptions","organizations_url":"https://api.github.com/users/gregory-casamento/orgs","repos_url":"https://api.github.com/users/gregory-casamento/repos","events_url":"https://api.github.com/users/gregory-casamento/events{/privacy}","received_events_url":"https://api.github.com/users/gregory-casamento/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":355011342,"node_id":"MDU6TGFiZWwzNTUwMTEzNDI=","url":"https://api.github.com/repos/18F/identity-idp/labels/status%20-%20ready%20for%20review","name":"status - ready for review","color":"006b75","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/18F/identity-idp/pulls/2430/commits","review_comments_url":"https://api.github.com/repos/18F/identity-idp/pulls/2430/comments","review_comment_url":"https://api.github.com/repos/18F/identity-idp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/18F/identity-idp/issues/2430/comments","statuses_url":"https://api.github.com/repos/18F/identity-idp/statuses/32e61b21678389ff7e5b937efb311152e6651c72","head":{"label":"18F:jmhooper-idv-specific-otp-verification","ref":"jmhooper-idv-specific-otp-verification","sha":"32e61b21678389ff7e5b937efb311152e6651c72","user":{"login":"18F","id":6233994,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMzM5OTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6233994?v=4","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"repo":{"id":50386243,"node_id":"MDEwOlJlcG9zaXRvcnk1MDM4NjI0Mw==","name":"identity-idp","full_name":"18F/identity-idp","owner":{"login":"18F","id":6233994,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMzM5OTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6233994?v=4","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/18F/identity-idp","description":"18F Identity Provider (IdP)","fork":false,"url":"https://api.github.com/repos/18F/identity-idp","forks_url":"https://api.github.com/repos/18F/identity-idp/forks","keys_url":"https://api.github.com/repos/18F/identity-idp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/18F/identity-idp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/18F/identity-idp/teams","hooks_url":"https://api.github.com/repos/18F/identity-idp/hooks","issue_events_url":"https://api.github.com/repos/18F/identity-idp/issues/events{/number}","events_url":"https://api.github.com/repos/18F/identity-idp/events","assignees_url":"https://api.github.com/repos/18F/identity-idp/assignees{/user}","branches_url":"https://api.github.com/repos/18F/identity-idp/branches{/branch}","tags_url":"https://api.github.com/repos/18F/identity-idp/tags","blobs_url":"https://api.github.com/repos/18F/identity-idp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/18F/identity-idp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/18F/identity-idp/git/refs{/sha}","trees_url":"https://api.github.com/repos/18F/identity-idp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/18F/identity-idp/statuses/{sha}","languages_url":"https://api.github.com/repos/18F/identity-idp/languages","stargazers_url":"https://api.github.com/repos/18F/identity-idp/stargazers","contributors_url":"https://api.github.com/repos/18F/identity-idp/contributors","subscribers_url":"https://api.github.com/repos/18F/identity-idp/subscribers","subscription_url":"https://api.github.com/repos/18F/identity-idp/subscription","commits_url":"https://api.github.com/repos/18F/identity-idp/commits{/sha}","git_commits_url":"https://api.github.com/repos/18F/identity-idp/git/commits{/sha}","comments_url":"https://api.github.com/repos/18F/identity-idp/comments{/number}","issue_comment_url":"https://api.github.com/repos/18F/identity-idp/issues/comments{/number}","contents_url":"https://api.github.com/repos/18F/identity-idp/contents/{+path}","compare_url":"https://api.github.com/repos/18F/identity-idp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/18F/identity-idp/merges","archive_url":"https://api.github.com/repos/18F/identity-idp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/18F/identity-idp/downloads","issues_url":"https://api.github.com/repos/18F/identity-idp/issues{/number}","pulls_url":"https://api.github.com/repos/18F/identity-idp/pulls{/number}","milestones_url":"https://api.github.com/repos/18F/identity-idp/milestones{/number}","notifications_url":"https://api.github.com/repos/18F/identity-idp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/18F/identity-idp/labels{/name}","releases_url":"https://api.github.com/repos/18F/identity-idp/releases{/id}","deployments_url":"https://api.github.com/repos/18F/identity-idp/deployments","created_at":"2016-01-25T22:40:59Z","updated_at":"2018-08-31T15:14:44Z","pushed_at":"2018-08-31T17:59:34Z","git_url":"git://github.com/18F/identity-idp.git","ssh_url":"git@github.com:18F/identity-idp.git","clone_url":"https://github.com/18F/identity-idp.git","svn_url":"https://github.com/18F/identity-idp","homepage":"https://secure.login.gov/","size":15188,"stargazers_count":181,"watchers_count":181,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"archived":false,"open_issues_count":26,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":34,"open_issues":26,"watchers":181,"default_branch":"master"}},"base":{"label":"18F:master","ref":"master","sha":"32c99474002f96a380845e61735a503c6fc132b4","user":{"login":"18F","id":6233994,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMzM5OTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6233994?v=4","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"repo":{"id":50386243,"node_id":"MDEwOlJlcG9zaXRvcnk1MDM4NjI0Mw==","name":"identity-idp","full_name":"18F/identity-idp","owner":{"login":"18F","id":6233994,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMzM5OTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6233994?v=4","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/18F/identity-idp","description":"18F Identity Provider (IdP)","fork":false,"url":"https://api.github.com/repos/18F/identity-idp","forks_url":"https://api.github.com/repos/18F/identity-idp/forks","keys_url":"https://api.github.com/repos/18F/identity-idp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/18F/identity-idp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/18F/identity-idp/teams","hooks_url":"https://api.github.com/repos/18F/identity-idp/hooks","issue_events_url":"https://api.github.com/repos/18F/identity-idp/issues/events{/number}","events_url":"https://api.github.com/repos/18F/identity-idp/events","assignees_url":"https://api.github.com/repos/18F/identity-idp/assignees{/user}","branches_url":"https://api.github.com/repos/18F/identity-idp/branches{/branch}","tags_url":"https://api.github.com/repos/18F/identity-idp/tags","blobs_url":"https://api.github.com/repos/18F/identity-idp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/18F/identity-idp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/18F/identity-idp/git/refs{/sha}","trees_url":"https://api.github.com/repos/18F/identity-idp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/18F/identity-idp/statuses/{sha}","languages_url":"https://api.github.com/repos/18F/identity-idp/languages","stargazers_url":"https://api.github.com/repos/18F/identity-idp/stargazers","contributors_url":"https://api.github.com/repos/18F/identity-idp/contributors","subscribers_url":"https://api.github.com/repos/18F/identity-idp/subscribers","subscription_url":"https://api.github.com/repos/18F/identity-idp/subscription","commits_url":"https://api.github.com/repos/18F/identity-idp/commits{/sha}","git_commits_url":"https://api.github.com/repos/18F/identity-idp/git/commits{/sha}","comments_url":"https://api.github.com/repos/18F/identity-idp/comments{/number}","issue_comment_url":"https://api.github.com/repos/18F/identity-idp/issues/comments{/number}","contents_url":"https://api.github.com/repos/18F/identity-idp/contents/{+path}","compare_url":"https://api.github.com/repos/18F/identity-idp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/18F/identity-idp/merges","archive_url":"https://api.github.com/repos/18F/identity-idp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/18F/identity-idp/downloads","issues_url":"https://api.github.com/repos/18F/identity-idp/issues{/number}","pulls_url":"https://api.github.com/repos/18F/identity-idp/pulls{/number}","milestones_url":"https://api.github.com/repos/18F/identity-idp/milestones{/number}","notifications_url":"https://api.github.com/repos/18F/identity-idp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/18F/identity-idp/labels{/name}","releases_url":"https://api.github.com/repos/18F/identity-idp/releases{/id}","deployments_url":"https://api.github.com/repos/18F/identity-idp/deployments","created_at":"2016-01-25T22:40:59Z","updated_at":"2018-08-31T15:14:44Z","pushed_at":"2018-08-31T17:59:34Z","git_url":"git://github.com/18F/identity-idp.git","ssh_url":"git@github.com:18F/identity-idp.git","clone_url":"https://github.com/18F/identity-idp.git","svn_url":"https://github.com/18F/identity-idp","homepage":"https://secure.login.gov/","size":15188,"stargazers_count":181,"watchers_count":181,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"archived":false,"open_issues_count":26,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":34,"open_issues":26,"watchers":181,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/18F/identity-idp/pulls/2430"},"html":{"href":"https://github.com/18F/identity-idp/pull/2430"},"issue":{"href":"https://api.github.com/repos/18F/identity-idp/issues/2430"},"comments":{"href":"https://api.github.com/repos/18F/identity-idp/issues/2430/comments"},"review_comments":{"href":"https://api.github.com/repos/18F/identity-idp/pulls/2430/comments"},"review_comment":{"href":"https://api.github.com/repos/18F/identity-idp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/18F/identity-idp/pulls/2430/commits"},"statuses":{"href":"https://api.github.com/repos/18F/identity-idp/statuses/32e61b21678389ff7e5b937efb311152e6651c72"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"monfresh"}}