{"action":"created","comment":{"url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/comments/240807837","pull_request_review_id":183924783,"id":240807837,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDgwNzgzNw==","diff_hunk":"@@ -0,0 +1,170 @@\n+<?php\n+namespace Sil\\SilIdBroker\\Behat\\Context;\n+\n+use common\\helpers\\MySqlDateTime;\n+use common\\models\\Method;\n+use common\\models\\Mfa;\n+use common\\models\\User;\n+use Webmozart\\Assert\\Assert;\n+\n+class UnitTestsContext extends YiiContext\n+{\n+    /** @var int */\n+    protected $mfaId = null;\n+\n+    /** var Mfa */\n+    protected $mfa;\n+\n+    /** var bool  */\n+    protected $mfaIsNew;\n+\n+    /** @var User */\n+    protected $tempUser;\n+\n+    /** @var bool whether the Mfa option is considered newly verified */\n+    protected $mfaIsNewlyVerified;\n+\n+    /** @var array The array of changed attributes for an Mfa option */\n+    protected $mfaChangedAttrs = ['label' => ''];\n+\n+    /** @var string */\n+    protected $nagState;\n+\n+    /**\n+     * Create a new user in the database with the given username (and other\n+     * details based off that username). If a user already exists with that\n+     * username, they will be deleted.\n+     *\n+     * @param string $username\n+     * @return User\n+     */\n+    protected function createNewUserInDatabase($username)\n+    {\n+        $existingUser = User::findByUsername($username);\n+        if ($existingUser !== null) {\n+            Assert::notSame($existingUser->delete(), false);\n+        }\n+\n+        $user = new User([\n+            'email' => $username . '@example.com',\n+            'employee_id' => (string)uniqid(),\n+            'first_name' => 'Test',\n+            'last_name' => 'User',\n+            'username' => $username,\n+        ]);\n+        $user->scenario = User::SCENARIO_NEW_USER;\n+        Assert::true(\n+            $user->save(),\n+            var_export($user->getErrors(), true)\n+        );\n+        Assert::notNull($user);\n+        return $user;\n+    }\n+\n+    protected function createMfa($type, $verified = 1, $user = null)\n+    {\n+        $user = $user ?? $this->tempUser;\n+\n+        $mfa = new Mfa();\n+        $mfa->user_id = $user->id;\n+        $mfa->type = $type;\n+        $mfa->verified = $verified;\n+\n+        Assert::true($mfa->save(), \"Could not create new mfa.\");\n+        $user->refresh();\n+        $this->mfaId = $mfa['id'];\n+        $this->mfa = $mfa;\n+    }\n+\n+    protected function createMethod($value, $verified = 1, $user = null)\n+    {\n+        $user = $user ?? $this->tempUser;\n+\n+        $method = new Method();\n+        $method->user_id = $user->id;\n+        $method->value = $value;\n+        $method->verified = $verified;\n+\n+        Assert::true($method->save(), \"Could not create new method.\");\n+        $user->refresh();\n+    }\n+\n+    /**\n+     * @Given A user with :verMeth verified method(s), :unverMeth unverified method(s), :verMfa verified mfa(s), and :unverMfa unverified mfa(s)\n+     */\n+    public function aUserWithVerifiedMethodsVerifiedMfas($verMeth, $unverMeth, $verMfa, $unverMfa)\n+    {\n+        $this->tempUser = $this->createNewUserInDatabase('method_tester');\n+\n+        for ($i = 0; $i < $verMeth; $i++) {\n+            $this->createMethod('verified' . $i . '@example.org', 1);\n+        }\n+\n+        for ($i = 0; $i < $unverMeth; $i++) {\n+            $this->createMethod('unverified' . $i . '@example.org', 0);\n+        }\n+\n+        for ($i = 0; $i < $verMfa; $i++) {\n+            $this->createMfa('totp', 1);\n+        }\n+\n+        for ($i = 0; $i < $unverMfa; $i++) {\n+            $this->createMfa('totp', 0);\n+        }\n+    }\n+\n+    /**\n+     * @When I request a list of verified methods\n+     */\n+    public function iRequestAListOfVerifiedMethods()\n+    {\n+        $this->methodList = $this->tempUser->getVerifiedMethodOptions();\n+    }\n+\n+    /**\n+     * @Then I see a list containing :num method\n+     */\n+    public function iSeeAListContainingMethod($num)\n+    {\n+        Assert::count($this->methodList, $num);\n+    }\n+\n+\n+    /**\n+     * @Given the nag dates are in the past\n+     */\n+    public function theNagDatesAreInThePast()\n+    {\n+        $this->tempUser->nag_for_method_after = MySqlDateTime::formatDate(time() - (60 * 60 * 24));\n+        $this->tempUser->nag_for_mfa_after = MySqlDateTime::formatDate(time() - (60 * 60 * 24));\n+    }\n+\n+    /**\n+     * @When I request the nag state\n+     */\n+    public function iRequestTheNagState()\n+    {\n+        $this->nagState = $this->tempUser->getNagState();\n+    }\n+\n+    /**\n+     * @Then I see that the nag state is :state\n+     */\n+    public function iSeeThatTheNagStateIs($state)\n+    {\n+        Assert::eq($this->nagState, $state);\n+    }\n+\n+    /**\n+     * @Then I update the nag dates\n+     */\n+    public function iUpdateTheNagDates()\n+    {\n+        $this->tempUser->updateNagDates();\n+\n+        /*\n+         * Force an update the next time getNagState() is called\n+         */\n+        $this->tempUser->nagState = null;","path":"application/features/bootstrap/UnitTestsContext.php","position":168,"original_position":168,"commit_id":"34db57213394f65eedd728a099adf22bc67d1cd5","original_commit_id":"34db57213394f65eedd728a099adf22bc67d1cd5","user":{"login":"Schparky","id":3172830,"node_id":"MDQ6VXNlcjMxNzI4MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/3172830?v=4","gravatar_id":"","url":"https://api.github.com/users/Schparky","html_url":"https://github.com/Schparky","followers_url":"https://api.github.com/users/Schparky/followers","following_url":"https://api.github.com/users/Schparky/following{/other_user}","gists_url":"https://api.github.com/users/Schparky/gists{/gist_id}","starred_url":"https://api.github.com/users/Schparky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Schparky/subscriptions","organizations_url":"https://api.github.com/users/Schparky/orgs","repos_url":"https://api.github.com/users/Schparky/repos","events_url":"https://api.github.com/users/Schparky/events{/privacy}","received_events_url":"https://api.github.com/users/Schparky/received_events","type":"User","site_admin":false},"body":"Perhaps. It's a question of how it might be used in the future. As of now, it wouldn't make a difference. Since `authenticatedUser` is cloned prior to calling `updateNagDates`, it would be safe to reset the `nagState` in `updateNagdates`. Logic seems to be in favor of doing as you suggest.","created_at":"2018-12-11T22:00:44Z","updated_at":"2018-12-11T22:00:45Z","html_url":"https://github.com/silinternational/idp-id-broker/pull/148#discussion_r240807837","pull_request_url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/comments/240807837"},"html":{"href":"https://github.com/silinternational/idp-id-broker/pull/148#discussion_r240807837"},"pull_request":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148"}},"in_reply_to_id":240800626},"pull_request":{"url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148","id":236678759,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2Njc4NzU5","html_url":"https://github.com/silinternational/idp-id-broker/pull/148","diff_url":"https://github.com/silinternational/idp-id-broker/pull/148.diff","patch_url":"https://github.com/silinternational/idp-id-broker/pull/148.patch","issue_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues/148","number":148,"state":"open","locked":false,"title":"Add recovery method and MFA review flags","user":{"login":"Schparky","id":3172830,"node_id":"MDQ6VXNlcjMxNzI4MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/3172830?v=4","gravatar_id":"","url":"https://api.github.com/users/Schparky","html_url":"https://github.com/Schparky","followers_url":"https://api.github.com/users/Schparky/followers","following_url":"https://api.github.com/users/Schparky/following{/other_user}","gists_url":"https://api.github.com/users/Schparky/gists{/gist_id}","starred_url":"https://api.github.com/users/Schparky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Schparky/subscriptions","organizations_url":"https://api.github.com/users/Schparky/orgs","repos_url":"https://api.github.com/users/Schparky/repos","events_url":"https://api.github.com/users/Schparky/events{/privacy}","received_events_url":"https://api.github.com/users/Schparky/received_events","type":"User","site_admin":false},"body":"- changed `nag` property in `mfa` sub-object of userResponse to `add`\r\n- added `add` property in `method` sub-object of userResponse\r\n- added `review` property in both `mfa` and `method` sub-objects of userResponse\r\n","created_at":"2018-12-06T21:30:41Z","updated_at":"2018-12-11T22:00:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ab33b77d54877e5cded7e2ce75bfa64d4887cd11","assignee":null,"assignees":[],"requested_reviewers":[{"login":"wcjr","id":4412848,"node_id":"MDQ6VXNlcjQ0MTI4NDg=","avatar_url":"https://avatars1.githubusercontent.com/u/4412848?v=4","gravatar_id":"","url":"https://api.github.com/users/wcjr","html_url":"https://github.com/wcjr","followers_url":"https://api.github.com/users/wcjr/followers","following_url":"https://api.github.com/users/wcjr/following{/other_user}","gists_url":"https://api.github.com/users/wcjr/gists{/gist_id}","starred_url":"https://api.github.com/users/wcjr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wcjr/subscriptions","organizations_url":"https://api.github.com/users/wcjr/orgs","repos_url":"https://api.github.com/users/wcjr/repos","events_url":"https://api.github.com/users/wcjr/events{/privacy}","received_events_url":"https://api.github.com/users/wcjr/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148/commits","review_comments_url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148/comments","review_comment_url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues/148/comments","statuses_url":"https://api.github.com/repos/silinternational/idp-id-broker/statuses/34db57213394f65eedd728a099adf22bc67d1cd5","head":{"label":"silinternational:feature/add-mm-review","ref":"feature/add-mm-review","sha":"34db57213394f65eedd728a099adf22bc67d1cd5","user":{"login":"silinternational","id":1247676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDc2NzY=","avatar_url":"https://avatars1.githubusercontent.com/u/1247676?v=4","gravatar_id":"","url":"https://api.github.com/users/silinternational","html_url":"https://github.com/silinternational","followers_url":"https://api.github.com/users/silinternational/followers","following_url":"https://api.github.com/users/silinternational/following{/other_user}","gists_url":"https://api.github.com/users/silinternational/gists{/gist_id}","starred_url":"https://api.github.com/users/silinternational/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silinternational/subscriptions","organizations_url":"https://api.github.com/users/silinternational/orgs","repos_url":"https://api.github.com/users/silinternational/repos","events_url":"https://api.github.com/users/silinternational/events{/privacy}","received_events_url":"https://api.github.com/users/silinternational/received_events","type":"Organization","site_admin":false},"repo":{"id":80863131,"node_id":"MDEwOlJlcG9zaXRvcnk4MDg2MzEzMQ==","name":"idp-id-broker","full_name":"silinternational/idp-id-broker","private":false,"owner":{"login":"silinternational","id":1247676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDc2NzY=","avatar_url":"https://avatars1.githubusercontent.com/u/1247676?v=4","gravatar_id":"","url":"https://api.github.com/users/silinternational","html_url":"https://github.com/silinternational","followers_url":"https://api.github.com/users/silinternational/followers","following_url":"https://api.github.com/users/silinternational/following{/other_user}","gists_url":"https://api.github.com/users/silinternational/gists{/gist_id}","starred_url":"https://api.github.com/users/silinternational/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silinternational/subscriptions","organizations_url":"https://api.github.com/users/silinternational/orgs","repos_url":"https://api.github.com/users/silinternational/repos","events_url":"https://api.github.com/users/silinternational/events{/privacy}","received_events_url":"https://api.github.com/users/silinternational/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/silinternational/idp-id-broker","description":"API to abstract identity persistence in IdP-in-a-box solution","fork":false,"url":"https://api.github.com/repos/silinternational/idp-id-broker","forks_url":"https://api.github.com/repos/silinternational/idp-id-broker/forks","keys_url":"https://api.github.com/repos/silinternational/idp-id-broker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/silinternational/idp-id-broker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/silinternational/idp-id-broker/teams","hooks_url":"https://api.github.com/repos/silinternational/idp-id-broker/hooks","issue_events_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues/events{/number}","events_url":"https://api.github.com/repos/silinternational/idp-id-broker/events","assignees_url":"https://api.github.com/repos/silinternational/idp-id-broker/assignees{/user}","branches_url":"https://api.github.com/repos/silinternational/idp-id-broker/branches{/branch}","tags_url":"https://api.github.com/repos/silinternational/idp-id-broker/tags","blobs_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/refs{/sha}","trees_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/silinternational/idp-id-broker/statuses/{sha}","languages_url":"https://api.github.com/repos/silinternational/idp-id-broker/languages","stargazers_url":"https://api.github.com/repos/silinternational/idp-id-broker/stargazers","contributors_url":"https://api.github.com/repos/silinternational/idp-id-broker/contributors","subscribers_url":"https://api.github.com/repos/silinternational/idp-id-broker/subscribers","subscription_url":"https://api.github.com/repos/silinternational/idp-id-broker/subscription","commits_url":"https://api.github.com/repos/silinternational/idp-id-broker/commits{/sha}","git_commits_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/commits{/sha}","comments_url":"https://api.github.com/repos/silinternational/idp-id-broker/comments{/number}","issue_comment_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues/comments{/number}","contents_url":"https://api.github.com/repos/silinternational/idp-id-broker/contents/{+path}","compare_url":"https://api.github.com/repos/silinternational/idp-id-broker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/silinternational/idp-id-broker/merges","archive_url":"https://api.github.com/repos/silinternational/idp-id-broker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/silinternational/idp-id-broker/downloads","issues_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues{/number}","pulls_url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls{/number}","milestones_url":"https://api.github.com/repos/silinternational/idp-id-broker/milestones{/number}","notifications_url":"https://api.github.com/repos/silinternational/idp-id-broker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/silinternational/idp-id-broker/labels{/name}","releases_url":"https://api.github.com/repos/silinternational/idp-id-broker/releases{/id}","deployments_url":"https://api.github.com/repos/silinternational/idp-id-broker/deployments","created_at":"2017-02-03T19:41:02Z","updated_at":"2018-11-06T19:14:28Z","pushed_at":"2018-12-11T18:24:00Z","git_url":"git://github.com/silinternational/idp-id-broker.git","ssh_url":"git@github.com:silinternational/idp-id-broker.git","clone_url":"https://github.com/silinternational/idp-id-broker.git","svn_url":"https://github.com/silinternational/idp-id-broker","homepage":null,"size":1033,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":15,"license":null,"forks":0,"open_issues":15,"watchers":0,"default_branch":"develop"}},"base":{"label":"silinternational:develop-4.0","ref":"develop-4.0","sha":"9d07edaa0482b04cbc21cc1accff162192192b28","user":{"login":"silinternational","id":1247676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDc2NzY=","avatar_url":"https://avatars1.githubusercontent.com/u/1247676?v=4","gravatar_id":"","url":"https://api.github.com/users/silinternational","html_url":"https://github.com/silinternational","followers_url":"https://api.github.com/users/silinternational/followers","following_url":"https://api.github.com/users/silinternational/following{/other_user}","gists_url":"https://api.github.com/users/silinternational/gists{/gist_id}","starred_url":"https://api.github.com/users/silinternational/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silinternational/subscriptions","organizations_url":"https://api.github.com/users/silinternational/orgs","repos_url":"https://api.github.com/users/silinternational/repos","events_url":"https://api.github.com/users/silinternational/events{/privacy}","received_events_url":"https://api.github.com/users/silinternational/received_events","type":"Organization","site_admin":false},"repo":{"id":80863131,"node_id":"MDEwOlJlcG9zaXRvcnk4MDg2MzEzMQ==","name":"idp-id-broker","full_name":"silinternational/idp-id-broker","private":false,"owner":{"login":"silinternational","id":1247676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDc2NzY=","avatar_url":"https://avatars1.githubusercontent.com/u/1247676?v=4","gravatar_id":"","url":"https://api.github.com/users/silinternational","html_url":"https://github.com/silinternational","followers_url":"https://api.github.com/users/silinternational/followers","following_url":"https://api.github.com/users/silinternational/following{/other_user}","gists_url":"https://api.github.com/users/silinternational/gists{/gist_id}","starred_url":"https://api.github.com/users/silinternational/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silinternational/subscriptions","organizations_url":"https://api.github.com/users/silinternational/orgs","repos_url":"https://api.github.com/users/silinternational/repos","events_url":"https://api.github.com/users/silinternational/events{/privacy}","received_events_url":"https://api.github.com/users/silinternational/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/silinternational/idp-id-broker","description":"API to abstract identity persistence in IdP-in-a-box solution","fork":false,"url":"https://api.github.com/repos/silinternational/idp-id-broker","forks_url":"https://api.github.com/repos/silinternational/idp-id-broker/forks","keys_url":"https://api.github.com/repos/silinternational/idp-id-broker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/silinternational/idp-id-broker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/silinternational/idp-id-broker/teams","hooks_url":"https://api.github.com/repos/silinternational/idp-id-broker/hooks","issue_events_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues/events{/number}","events_url":"https://api.github.com/repos/silinternational/idp-id-broker/events","assignees_url":"https://api.github.com/repos/silinternational/idp-id-broker/assignees{/user}","branches_url":"https://api.github.com/repos/silinternational/idp-id-broker/branches{/branch}","tags_url":"https://api.github.com/repos/silinternational/idp-id-broker/tags","blobs_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/refs{/sha}","trees_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/silinternational/idp-id-broker/statuses/{sha}","languages_url":"https://api.github.com/repos/silinternational/idp-id-broker/languages","stargazers_url":"https://api.github.com/repos/silinternational/idp-id-broker/stargazers","contributors_url":"https://api.github.com/repos/silinternational/idp-id-broker/contributors","subscribers_url":"https://api.github.com/repos/silinternational/idp-id-broker/subscribers","subscription_url":"https://api.github.com/repos/silinternational/idp-id-broker/subscription","commits_url":"https://api.github.com/repos/silinternational/idp-id-broker/commits{/sha}","git_commits_url":"https://api.github.com/repos/silinternational/idp-id-broker/git/commits{/sha}","comments_url":"https://api.github.com/repos/silinternational/idp-id-broker/comments{/number}","issue_comment_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues/comments{/number}","contents_url":"https://api.github.com/repos/silinternational/idp-id-broker/contents/{+path}","compare_url":"https://api.github.com/repos/silinternational/idp-id-broker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/silinternational/idp-id-broker/merges","archive_url":"https://api.github.com/repos/silinternational/idp-id-broker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/silinternational/idp-id-broker/downloads","issues_url":"https://api.github.com/repos/silinternational/idp-id-broker/issues{/number}","pulls_url":"https://api.github.com/repos/silinternational/idp-id-broker/pulls{/number}","milestones_url":"https://api.github.com/repos/silinternational/idp-id-broker/milestones{/number}","notifications_url":"https://api.github.com/repos/silinternational/idp-id-broker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/silinternational/idp-id-broker/labels{/name}","releases_url":"https://api.github.com/repos/silinternational/idp-id-broker/releases{/id}","deployments_url":"https://api.github.com/repos/silinternational/idp-id-broker/deployments","created_at":"2017-02-03T19:41:02Z","updated_at":"2018-11-06T19:14:28Z","pushed_at":"2018-12-11T18:24:00Z","git_url":"git://github.com/silinternational/idp-id-broker.git","ssh_url":"git@github.com:silinternational/idp-id-broker.git","clone_url":"https://github.com/silinternational/idp-id-broker.git","svn_url":"https://github.com/silinternational/idp-id-broker","homepage":null,"size":1033,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":15,"license":null,"forks":0,"open_issues":15,"watchers":0,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148"},"html":{"href":"https://github.com/silinternational/idp-id-broker/pull/148"},"issue":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/issues/148"},"comments":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/issues/148/comments"},"review_comments":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148/comments"},"review_comment":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/pulls/148/commits"},"statuses":{"href":"https://api.github.com/repos/silinternational/idp-id-broker/statuses/34db57213394f65eedd728a099adf22bc67d1cd5"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Schparky"}}