{"action":"created","comment":{"url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/comments/79585990","id":79585990,"diff_hunk":"@@ -99,72 +99,114 @@ $layout->assign('helpLink', '/authentication/idp/help-discover?lang=' . $lang);\n   <input placeholder=\"<?= $this->t('search'); ?>\" type=\"search\" tabindex=\"0\" class=\"mod-search-input active\">\n \n   <button class=\"search\">Search</button>\n+    <?php\n \n-  <div id=\"preselection\" class=\"mod-results hidden\">\n-      <header>\n-        <h2><?php echo $this->t('our_suggestion'); ?><a class=\"edit\" href=\"#\" data-toggle=\"view\" data-toggle-text=\"<?= $this->t('done'); ?>\"><?= $this->t('edit'); ?></a></h2>\n-      </header>\n-      <div class=\"list\">\n+    $previousSelectionCookieIdentifier = 'selectedidps';\n+    $previousSelection                 = json_decode($_COOKIE[$previousSelectionCookieIdentifier], true);\n \n-      </div>\n-  </div>\n+    $previousSelectionIndex = [];\n+    if ($previousSelection !== null) {\n+        foreach ($previousSelection as $idp) {\n+            $previousSelectionIndex[$idp['idp']] = $idp;\n+        }\n+    }\n \n-  <div id=\"selection\" class=\"mod-results\">\n-    <header>\n-      <h2><?php echo $this->t('idps_with_access'); ?></h2>\n-    </header>\n-    <div class=\"list\">\n+    $formattedPreviousSelectionList = [];\n+    $formattedIdpList = [];\n+    foreach ($idpList as $idp) {\n+        $idpKeywords = $idp['Keywords'] === 'Undefined' ? array() : array_values((array) $idp['Keywords']);\n+\n+        if (isset($previousSelectionIndex[$idp['EntityID']])) {\n+            $formattedPreviousSelectionList[] = array_merge(\n+                $previousSelectionIndex[$idp['EntityID']],\n+                [\n+                    'entityId'     => $idp['EntityID'],\n+                    'displayTitle' => $idp['Name_'.$lang],\n+                    'title'        => strtolower($idp['Name_'.$lang]),\n+                    'keywords'     => strtolower(join('|', $idpKeywords)),\n+                    'logo'         => $idp['Logo'],\n+                ]\n+            );\n+            continue;\n+        }\n+\n+        $formattedIdpList[] = [\n+            'entityId'     => $idp['EntityID'],\n+            'displayTitle' => $idp['Name_'.$lang],\n+            'title'        => strtolower($idp['Name_'.$lang]),\n+            'keywords'     => strtolower(join('|', $idpKeywords)),\n+            'logo'         => $idp['Logo'],\n+        ];\n+    }\n \n-      <div class=\"loading spinner hidden\">\n-        <div class=\"logo\">\n-          <img class=\"rotate-img\" src=\"/images/spinner.svg\" alt=\"\" />\n-        </div>\n-        <?=$this->t('loading_idps');?>\n+    $configuration = [\n+        'previousSelectionCookieName' => $previousSelectionCookieIdentifier,\n+        'previousSelectionList'       => $formattedPreviousSelectionList,\n+        'idpList'                     => $formattedIdpList,\n+        'maximumIdpResultsPerList'    => 50,\n+        'messages' => [\n+            'pressEnterToSelect' => $this->t('press_enter_to_select'),\n+            'moreIdpResults'     => $this->t('more_idp_results')\n+        ],\n+        'requestAccessUrl' => '/authentication/idp/requestAccess?' . http_build_query([\n+            'lang' => $lang,\n+            'spEntityId' => $metaDataSP->entityId,\n+            'spName' => $spDisplayName,\n+        ]),\n+    ];\n+    ?>\n+\n+    <script id=\"wayf-configuration\" type=\"application/json\">\n+        <?php echo json_encode($configuration); ?>\n+    </script>\n+\n+    <div id=\"idp-picker\">\n+      <div id=\"preselection\" class=\"mod-results hidden\">\n+          <header>\n+              <h2><?php echo $this->t('our_suggestion'); ?><a class=\"edit\" href=\"#\" data-toggle=\"view\" data-toggle-text=\"<?= $this->t('done'); ?>\"><?= $this->t('edit'); ?></a></h2>\n+          </header>\n+          <div class=\"idp-list\">\n+          </div>\n       </div>\n \n-      <?php foreach ($idpList as $key => $idp) : ?>\n-        <?php $idpKeywords = $idp['Keywords'] === 'Undefined' ? array() : array_values((array) $idp['Keywords']) ?>\n-        <a class=\"result active access\"\n-           href=\"#\"\n-           tabindex=\"-1\"\n-           data-idp=\"<?= EngineBlock_View::htmlSpecialCharsAttributeValue($idp['EntityID']); ?>\"\n-           data-keywords=\"<?= EngineBlock_View::htmlSpecialCharsAttributeValue(json_encode($idpKeywords)); ?>\">\n-          <div class=\"logo\">\n-            <img class=\"logo\" src=\"/images/placeholder.png\" data-original=\"<?= $idp['Logo'] ?>\" alt=\"\" />\n+      <div id=\"selection\" class=\"mod-results\">\n+        <header>\n+            <h2><?php echo $this->t('idps_with_access'); ?></h2>\n+        </header>\n+\n+          <div class=\"loading spinner hidden\">\n+            <div class=\"logo\">\n+              <img class=\"rotate-img\" src=\"/images/spinner.svg\" alt=\"\" />\n+            </div>\n+            <?=$this->t('loading_idps');?>\n           </div>\n-          <h3><?= EngineBlock_View::htmlSpecialCharsAttributeValue($idp['Name_' . $lang]); ?></h3>\n-          <span class=\"c-button white action\"\n-                data-toggle-text=\"<img class='deleteable' src='/images/cross.svg' alt='delete' />\"\n-            ><?php echo $this->t('press_enter_to_select'); ?></span>\n-          <noscript>\n+\n+            <div class=\"idp-list\">\n+            </div>\n+\n+        <noscript>\n+          <?php foreach ($idpList as $key => $idp) : ?>\n+          <a class=\"result active access\" href=\"#\" tabindex=\"-1\">\n+              <div class=\"logo\">\n+                <img class=\"logo\" src=\"/images/placeholder.png\"/>","path":"app/Resources/views/modules/Authentication/View/Proxy/discover.phtml","position":124,"original_position":124,"commit_id":"7f7174fcd94ab7a19a236b8b35cf524cb6324adc","original_commit_id":"7f7174fcd94ab7a19a236b8b35cf524cb6324adc","user":{"login":"DRvanR","id":1422284,"avatar_url":"https://avatars.githubusercontent.com/u/1422284?v=3","gravatar_id":"","url":"https://api.github.com/users/DRvanR","html_url":"https://github.com/DRvanR","followers_url":"https://api.github.com/users/DRvanR/followers","following_url":"https://api.github.com/users/DRvanR/following{/other_user}","gists_url":"https://api.github.com/users/DRvanR/gists{/gist_id}","starred_url":"https://api.github.com/users/DRvanR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DRvanR/subscriptions","organizations_url":"https://api.github.com/users/DRvanR/orgs","repos_url":"https://api.github.com/users/DRvanR/repos","events_url":"https://api.github.com/users/DRvanR/events{/privacy}","received_events_url":"https://api.github.com/users/DRvanR/received_events","type":"User","site_admin":false},"body":"Will do","created_at":"2016-09-20T11:06:51Z","updated_at":"2016-09-20T11:06:51Z","html_url":"https://github.com/OpenConext/OpenConext-engineblock/pull/337#discussion_r79585990","pull_request_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337","_links":{"self":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/comments/79585990"},"html":{"href":"https://github.com/OpenConext/OpenConext-engineblock/pull/337#discussion_r79585990"},"pull_request":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337"}}},"pull_request":{"url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337","id":85586555,"html_url":"https://github.com/OpenConext/OpenConext-engineblock/pull/337","diff_url":"https://github.com/OpenConext/OpenConext-engineblock/pull/337.diff","patch_url":"https://github.com/OpenConext/OpenConext-engineblock/pull/337.patch","issue_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/337","number":337,"state":"open","locked":false,"title":"Reorganize and optimize WAYF JavaScript","user":{"login":"arothuis","id":3816591,"avatar_url":"https://avatars.githubusercontent.com/u/3816591?v=3","gravatar_id":"","url":"https://api.github.com/users/arothuis","html_url":"https://github.com/arothuis","followers_url":"https://api.github.com/users/arothuis/followers","following_url":"https://api.github.com/users/arothuis/following{/other_user}","gists_url":"https://api.github.com/users/arothuis/gists{/gist_id}","starred_url":"https://api.github.com/users/arothuis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arothuis/subscriptions","organizations_url":"https://api.github.com/users/arothuis/orgs","repos_url":"https://api.github.com/users/arothuis/repos","events_url":"https://api.github.com/users/arothuis/events{/privacy}","received_events_url":"https://api.github.com/users/arothuis/received_events","type":"User","site_admin":false},"body":"#### Issues:\r\n[127991057](https://www.pivotaltracker.com/story/show/127991057): Optimize WAYF\r\n[127716355](https://www.pivotaltracker.com/story/show/127716355): Fix keyboard controls\r\n\r\n#### Improvements:\r\n* optimize the WAYF by tackling search from a more data-centric approach, instead of the previous (slower) view-centric approach: data is modified/filtered and then rendered\r\n* improve usability and rendering speed by only showing a fixed amount of results per list\r\n* organize the code into modules in a manner that is more decoupled from the UI\r\n* allow developers to develop in modern ES2015 (ECMAScript 6) by transpiling it via babel and grunt\r\n* remove some dependencies, reducing JavaScript package size from 129 KB to 19.5 KB\r\n* remove the need for Bower in favor of NPM for JavaScript package management\r\n* improve compatibility with older browsers (such IE8) by conditionally adding (minified) shims and polyfills\r\n\r\n#### Related issues:\r\n[130523403](https://www.pivotaltracker.com/story/show/130523403): Further decouple WAYF JavaScript logic from UI \r\n[130523139](https://www.pivotaltracker.com/story/show/130523139): Reconsider WAYF Request Access functionality\r\n","created_at":"2016-09-16T14:49:42Z","updated_at":"2016-09-20T11:06:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0ade7e77fb37c55a3a961831721cdda609aa3955","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/milestones/16","html_url":"https://github.com/OpenConext/OpenConext-engineblock/milestones/5.1","labels_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/milestones/16/labels","id":1898961,"number":16,"title":"5.1","description":"","creator":{"login":"thijskh","id":3808792,"avatar_url":"https://avatars.githubusercontent.com/u/3808792?v=3","gravatar_id":"","url":"https://api.github.com/users/thijskh","html_url":"https://github.com/thijskh","followers_url":"https://api.github.com/users/thijskh/followers","following_url":"https://api.github.com/users/thijskh/following{/other_user}","gists_url":"https://api.github.com/users/thijskh/gists{/gist_id}","starred_url":"https://api.github.com/users/thijskh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thijskh/subscriptions","organizations_url":"https://api.github.com/users/thijskh/orgs","repos_url":"https://api.github.com/users/thijskh/repos","events_url":"https://api.github.com/users/thijskh/events{/privacy}","received_events_url":"https://api.github.com/users/thijskh/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":4,"state":"open","created_at":"2016-07-22T14:04:23Z","updated_at":"2016-09-16T14:49:42Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337/commits","review_comments_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337/comments","review_comment_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/337/comments","statuses_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/statuses/7f7174fcd94ab7a19a236b8b35cf524cb6324adc","head":{"label":"OpenConext:feature/clean-up-wayf-js","ref":"feature/clean-up-wayf-js","sha":"7f7174fcd94ab7a19a236b8b35cf524cb6324adc","user":{"login":"OpenConext","id":1457650,"avatar_url":"https://avatars.githubusercontent.com/u/1457650?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenConext","html_url":"https://github.com/OpenConext","followers_url":"https://api.github.com/users/OpenConext/followers","following_url":"https://api.github.com/users/OpenConext/following{/other_user}","gists_url":"https://api.github.com/users/OpenConext/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenConext/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenConext/subscriptions","organizations_url":"https://api.github.com/users/OpenConext/orgs","repos_url":"https://api.github.com/users/OpenConext/repos","events_url":"https://api.github.com/users/OpenConext/events{/privacy}","received_events_url":"https://api.github.com/users/OpenConext/received_events","type":"Organization","site_admin":false},"repo":{"id":3900071,"name":"OpenConext-engineblock","full_name":"OpenConext/OpenConext-engineblock","owner":{"login":"OpenConext","id":1457650,"avatar_url":"https://avatars.githubusercontent.com/u/1457650?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenConext","html_url":"https://github.com/OpenConext","followers_url":"https://api.github.com/users/OpenConext/followers","following_url":"https://api.github.com/users/OpenConext/following{/other_user}","gists_url":"https://api.github.com/users/OpenConext/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenConext/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenConext/subscriptions","organizations_url":"https://api.github.com/users/OpenConext/orgs","repos_url":"https://api.github.com/users/OpenConext/repos","events_url":"https://api.github.com/users/OpenConext/events{/privacy}","received_events_url":"https://api.github.com/users/OpenConext/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenConext/OpenConext-engineblock","description":"OpenConext SAML 2.0 IdP/SP Gateway","fork":false,"url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock","forks_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/forks","keys_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/teams","hooks_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/hooks","issue_events_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/events{/number}","events_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/events","assignees_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/assignees{/user}","branches_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/branches{/branch}","tags_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/tags","blobs_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/languages","stargazers_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/stargazers","contributors_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/contributors","subscribers_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/subscribers","subscription_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/subscription","commits_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/contents/{+path}","compare_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/merges","archive_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/downloads","issues_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues{/number}","pulls_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/labels{/name}","releases_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/releases{/id}","deployments_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/deployments","created_at":"2012-04-02T11:49:31Z","updated_at":"2016-08-31T12:19:07Z","pushed_at":"2016-09-16T14:49:42Z","git_url":"git://github.com/OpenConext/OpenConext-engineblock.git","ssh_url":"git@github.com:OpenConext/OpenConext-engineblock.git","clone_url":"https://github.com/OpenConext/OpenConext-engineblock.git","svn_url":"https://github.com/OpenConext/OpenConext-engineblock","homepage":"","size":20563,"stargazers_count":5,"watchers_count":5,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":14,"mirror_url":null,"open_issues_count":53,"forks":14,"open_issues":53,"watchers":5,"default_branch":"master"}},"base":{"label":"OpenConext:master","ref":"master","sha":"c40bc65716e987bb217055f7ec08332c67347485","user":{"login":"OpenConext","id":1457650,"avatar_url":"https://avatars.githubusercontent.com/u/1457650?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenConext","html_url":"https://github.com/OpenConext","followers_url":"https://api.github.com/users/OpenConext/followers","following_url":"https://api.github.com/users/OpenConext/following{/other_user}","gists_url":"https://api.github.com/users/OpenConext/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenConext/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenConext/subscriptions","organizations_url":"https://api.github.com/users/OpenConext/orgs","repos_url":"https://api.github.com/users/OpenConext/repos","events_url":"https://api.github.com/users/OpenConext/events{/privacy}","received_events_url":"https://api.github.com/users/OpenConext/received_events","type":"Organization","site_admin":false},"repo":{"id":3900071,"name":"OpenConext-engineblock","full_name":"OpenConext/OpenConext-engineblock","owner":{"login":"OpenConext","id":1457650,"avatar_url":"https://avatars.githubusercontent.com/u/1457650?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenConext","html_url":"https://github.com/OpenConext","followers_url":"https://api.github.com/users/OpenConext/followers","following_url":"https://api.github.com/users/OpenConext/following{/other_user}","gists_url":"https://api.github.com/users/OpenConext/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenConext/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenConext/subscriptions","organizations_url":"https://api.github.com/users/OpenConext/orgs","repos_url":"https://api.github.com/users/OpenConext/repos","events_url":"https://api.github.com/users/OpenConext/events{/privacy}","received_events_url":"https://api.github.com/users/OpenConext/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenConext/OpenConext-engineblock","description":"OpenConext SAML 2.0 IdP/SP Gateway","fork":false,"url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock","forks_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/forks","keys_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/teams","hooks_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/hooks","issue_events_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/events{/number}","events_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/events","assignees_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/assignees{/user}","branches_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/branches{/branch}","tags_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/tags","blobs_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/languages","stargazers_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/stargazers","contributors_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/contributors","subscribers_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/subscribers","subscription_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/subscription","commits_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/contents/{+path}","compare_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/merges","archive_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/downloads","issues_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues{/number}","pulls_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/labels{/name}","releases_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/releases{/id}","deployments_url":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/deployments","created_at":"2012-04-02T11:49:31Z","updated_at":"2016-08-31T12:19:07Z","pushed_at":"2016-09-16T14:49:42Z","git_url":"git://github.com/OpenConext/OpenConext-engineblock.git","ssh_url":"git@github.com:OpenConext/OpenConext-engineblock.git","clone_url":"https://github.com/OpenConext/OpenConext-engineblock.git","svn_url":"https://github.com/OpenConext/OpenConext-engineblock","homepage":"","size":20563,"stargazers_count":5,"watchers_count":5,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":14,"mirror_url":null,"open_issues_count":53,"forks":14,"open_issues":53,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337"},"html":{"href":"https://github.com/OpenConext/OpenConext-engineblock/pull/337"},"issue":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/337"},"comments":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/issues/337/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/pulls/337/commits"},"statuses":{"href":"https://api.github.com/repos/OpenConext/OpenConext-engineblock/statuses/7f7174fcd94ab7a19a236b8b35cf524cb6324adc"}}}}
{"actor":{"display_login":"DRvanR"}}