{"action":"created","comment":{"url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/comments/240060660","pull_request_review_id":183002503,"id":240060660,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDA2MDY2MA==","diff_hunk":"@@ -0,0 +1,173 @@\n+<?php\n+\n+namespace Drupal\\stanford_ssp\\Form;\n+\n+use Drupal\\Component\\Utility\\Html;\n+use Drupal\\Core\\Form\\FormBase;\n+use Drupal\\Core\\Form\\FormStateInterface;\n+use Drupal\\externalauth\\AuthmapInterface;\n+use Drupal\\user\\Entity\\User;\n+use Drupal\\user\\RoleInterface;\n+use Egulias\\EmailValidator\\EmailValidatorInterface;\n+use Symfony\\Component\\DependencyInjection\\ContainerInterface;\n+\n+/**\n+ * Class AddUser to add a SSP user without them logging in first.\n+ *\n+ * @package Drupal\\stanford_ssp\\Form\n+ */\n+class AddUserForm extends FormBase {\n+\n+  /**\n+   * External authmap service.\n+   *\n+   * @var \\Drupal\\externalauth\\AuthmapInterface\n+   */\n+  protected $authmap;\n+\n+  /**\n+   * Email Validator service.\n+   *\n+   * @var \\Egulias\\EmailValidator\\EmailValidatorInterface\n+   */\n+  protected $emailValidator;\n+\n+  /**\n+   * {@inheritdoc}\n+   */\n+  public static function create(ContainerInterface $container) {\n+    return new static(\n+      $container->get('externalauth.authmap'),\n+      $container->get('email.validator')\n+    );\n+  }\n+\n+  /**\n+   * {@inheritdoc}\n+   */\n+  public function __construct(AuthmapInterface $authmap, EmailValidatorInterface $email_validator) {\n+    $this->authmap = $authmap;\n+    $this->emailValidator = $email_validator;\n+  }\n+\n+  /**\n+   * {@inheritdoc}\n+   */\n+  public function getFormId() {\n+    return 'stanford_ssp_add_user_form';\n+  }\n+\n+  /**\n+   * {@inheritdoc}\n+   */\n+  public function buildForm(array $form, FormStateInterface $form_state) {\n+    $form = [];\n+    $form['sunetid'] = [\n+      '#type' => 'textfield',\n+      '#title' => $this->t('SUNetID'),\n+      '#description' => $this->t('Enter the SUNetID of the user you wish to add.'),\n+      '#required' => TRUE,\n+    ];\n+    $form['name'] = [\n+      '#type' => 'textfield',\n+      '#title' => $this->t('Name'),\n+      '#description' => $this->t('If you wish to specify the user\\'s preferred name (instead of sunetid@stanford.edu), enter it here.'),\n+    ];\n+    $form['email'] = [\n+      '#type' => 'email',\n+      '#title' => $this->t('Email Address'),\n+      '#description' => $this->t('If you wish to specify an alternate email address (instead of sunetid@stanford.edu), enter it here.'),\n+    ];\n+    if ($this->config('simplesamlphp_auth.settings')\n+      ->get('allow.set_drupal_pwd')) {\n+      $form['pass'] = [\n+        '#type' => 'password_confirm',\n+        '#size' => 25,\n+      ];\n+    }\n+    $roles = user_role_names();\n+    unset($roles[RoleInterface::ANONYMOUS_ID], $roles[RoleInterface::AUTHENTICATED_ID]);\n+    $form['roles'] = [\n+      '#type' => 'select',\n+      '#title' => $this->t('Roles'),\n+      '#description' => $this->t('Add roles to the new user account.'),\n+      '#options' => $roles,\n+      '#multiple' => TRUE,\n+    ];\n+    $form['notify'] = [\n+      '#type' => 'checkbox',\n+      '#title' => $this->t('Notify user of new account'),\n+    ];\n+    $form['submit'] = [\n+      '#type' => 'submit',\n+      '#value' => $this->t('Add SSO User'),\n+    ];\n+    return $form;\n+  }\n+\n+  /**\n+   * {@inheritdoc}\n+   */\n+  public function validateForm(array &$form, FormStateInterface $form_state) {\n+    parent::validateForm($form, $form_state);\n+    $sunet = strtolower(trim(Html::escape(($form_state->getValue('sunetid')))));\n+    $form_state->setValue('sunetid', $sunet);\n+\n+    if ($this->authmap->getUid($sunet, 'simplesamlphp_auth')) {\n+      $form_state->setError($form['sunetid'], $this->t('Could not create user. Authname %name already exists. Has the user already been created with a different username but the same SUNetID?', ['%name' => $sunet]));\n+    }\n+\n+    // If no name is specified, use the default name (sunetid + @stanford.edu).\n+    $name = trim(Html::escape($form_state->getValue('name'))) ?: $sunet;\n+    $form_state->setValue('name', $name);\n+\n+    // Check that there is no user with the same name.\n+    if (user_load_by_name($name)) {\n+      $form_state->setError($form['name'], $this->t('Could not create user. Username %name already exists.', ['%name' => $name]));\n+    }\n+\n+    // If no email was specified, we'll use the default (sunetid + @stanford.edu).\n+    $default_email = $sunet . '@stanford.edu';\n+    $email = strtolower(trim($form_state->getValue('email'))) ?: $default_email;\n+    $form_state->setValue('email', $email);\n+\n+    if (!$this->emailValidator->isValid($email)) {\n+      $form_state->setError($form['email'], t('The e-mail address %email is not valid.', ['%email' => $email]));","path":"src/Form/AddUserForm.php","position":135,"original_position":135,"commit_id":"3f79801784bb391cb94317c11617a88057ce38bf","original_commit_id":"3f79801784bb391cb94317c11617a88057ce38bf","user":{"login":"codeclimate[bot]","id":36754821,"node_id":"MDM6Qm90MzY3NTQ4MjE=","avatar_url":"https://avatars0.githubusercontent.com/in/9403?v=4","gravatar_id":"","url":"https://api.github.com/users/codeclimate%5Bbot%5D","html_url":"https://github.com/apps/codeclimate","followers_url":"https://api.github.com/users/codeclimate%5Bbot%5D/followers","following_url":"https://api.github.com/users/codeclimate%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/codeclimate%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/codeclimate%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codeclimate%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/codeclimate%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/codeclimate%5Bbot%5D/repos","events_url":"https://api.github.com/users/codeclimate%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/codeclimate%5Bbot%5D/received_events","type":"Bot","site_admin":false},"body":"t() calls should be avoided in classes, use dependency injection and $this->t() instead","created_at":"2018-12-10T00:01:31Z","updated_at":"2018-12-10T00:01:32Z","html_url":"https://github.com/SU-SWS/stanford_ssp/pull/64#discussion_r240060660","pull_request_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/comments/240060660"},"html":{"href":"https://github.com/SU-SWS/stanford_ssp/pull/64#discussion_r240060660"},"pull_request":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64"}}},"pull_request":{"url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64","id":236692491,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2NjkyNDkx","html_url":"https://github.com/SU-SWS/stanford_ssp/pull/64","diff_url":"https://github.com/SU-SWS/stanford_ssp/pull/64.diff","patch_url":"https://github.com/SU-SWS/stanford_ssp/pull/64.patch","issue_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/64","number":64,"state":"open","locked":false,"title":"D8 version","user":{"login":"pookmish","id":7185045,"node_id":"MDQ6VXNlcjcxODUwNDU=","avatar_url":"https://avatars0.githubusercontent.com/u/7185045?v=4","gravatar_id":"","url":"https://api.github.com/users/pookmish","html_url":"https://github.com/pookmish","followers_url":"https://api.github.com/users/pookmish/followers","following_url":"https://api.github.com/users/pookmish/following{/other_user}","gists_url":"https://api.github.com/users/pookmish/gists{/gist_id}","starred_url":"https://api.github.com/users/pookmish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pookmish/subscriptions","organizations_url":"https://api.github.com/users/pookmish/orgs","repos_url":"https://api.github.com/users/pookmish/repos","events_url":"https://api.github.com/users/pookmish/events{/privacy}","received_events_url":"https://api.github.com/users/pookmish/received_events","type":"User","site_admin":false},"body":"# READY FOR REVIEW (mostly i think)\r\n\r\n# Summary\r\n- I think the diff is not going to be much help. probably gonna have to just review the branch directly\r\n\r\n# Needed By (Date)\r\n- When does this need to be merged by?\r\n\r\n# Urgency\r\n- How critical is this PR?\r\n\r\n# Steps to Test\r\n\r\n1. Do this\r\n1. Then this\r\n2. Then this\r\n\r\n# Affected Projects or Products\r\n- Does this PR impact any particular projects, products, or modules?\r\n\r\n# Associated Issues and/or People\r\n- JIRA ticket\r\n- Other PRs\r\n- Any other contextual information that might be helpful (e.g., description of a bug that this PR fixes, new functionality that it adds, etc.)\r\n- Anyone who should be notified? (`@mention` them here)\r\n\r\n# See Also\r\n- [PR Checklist](https://gist.github.com/sherakama/0ba17601381e3adbe0cad566ad4d80a5)","created_at":"2018-12-06T22:22:08Z","updated_at":"2018-12-10T00:01:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6fa72c4e8beb1443d5ed3f16ef1c61c2be86bb91","assignee":{"login":"sherakama","id":550602,"node_id":"MDQ6VXNlcjU1MDYwMg==","avatar_url":"https://avatars2.githubusercontent.com/u/550602?v=4","gravatar_id":"","url":"https://api.github.com/users/sherakama","html_url":"https://github.com/sherakama","followers_url":"https://api.github.com/users/sherakama/followers","following_url":"https://api.github.com/users/sherakama/following{/other_user}","gists_url":"https://api.github.com/users/sherakama/gists{/gist_id}","starred_url":"https://api.github.com/users/sherakama/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherakama/subscriptions","organizations_url":"https://api.github.com/users/sherakama/orgs","repos_url":"https://api.github.com/users/sherakama/repos","events_url":"https://api.github.com/users/sherakama/events{/privacy}","received_events_url":"https://api.github.com/users/sherakama/received_events","type":"User","site_admin":false},"assignees":[{"login":"sherakama","id":550602,"node_id":"MDQ6VXNlcjU1MDYwMg==","avatar_url":"https://avatars2.githubusercontent.com/u/550602?v=4","gravatar_id":"","url":"https://api.github.com/users/sherakama","html_url":"https://github.com/sherakama","followers_url":"https://api.github.com/users/sherakama/followers","following_url":"https://api.github.com/users/sherakama/following{/other_user}","gists_url":"https://api.github.com/users/sherakama/gists{/gist_id}","starred_url":"https://api.github.com/users/sherakama/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherakama/subscriptions","organizations_url":"https://api.github.com/users/sherakama/orgs","repos_url":"https://api.github.com/users/sherakama/repos","events_url":"https://api.github.com/users/sherakama/events{/privacy}","received_events_url":"https://api.github.com/users/sherakama/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"jbickar","id":821106,"node_id":"MDQ6VXNlcjgyMTEwNg==","avatar_url":"https://avatars3.githubusercontent.com/u/821106?v=4","gravatar_id":"","url":"https://api.github.com/users/jbickar","html_url":"https://github.com/jbickar","followers_url":"https://api.github.com/users/jbickar/followers","following_url":"https://api.github.com/users/jbickar/following{/other_user}","gists_url":"https://api.github.com/users/jbickar/gists{/gist_id}","starred_url":"https://api.github.com/users/jbickar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbickar/subscriptions","organizations_url":"https://api.github.com/users/jbickar/orgs","repos_url":"https://api.github.com/users/jbickar/repos","events_url":"https://api.github.com/users/jbickar/events{/privacy}","received_events_url":"https://api.github.com/users/jbickar/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64/commits","review_comments_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64/comments","review_comment_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/64/comments","statuses_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/statuses/3f79801784bb391cb94317c11617a88057ce38bf","head":{"label":"SU-SWS:d8-version","ref":"d8-version","sha":"3f79801784bb391cb94317c11617a88057ce38bf","user":{"login":"SU-SWS","id":840730,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0MDczMA==","avatar_url":"https://avatars3.githubusercontent.com/u/840730?v=4","gravatar_id":"","url":"https://api.github.com/users/SU-SWS","html_url":"https://github.com/SU-SWS","followers_url":"https://api.github.com/users/SU-SWS/followers","following_url":"https://api.github.com/users/SU-SWS/following{/other_user}","gists_url":"https://api.github.com/users/SU-SWS/gists{/gist_id}","starred_url":"https://api.github.com/users/SU-SWS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SU-SWS/subscriptions","organizations_url":"https://api.github.com/users/SU-SWS/orgs","repos_url":"https://api.github.com/users/SU-SWS/repos","events_url":"https://api.github.com/users/SU-SWS/events{/privacy}","received_events_url":"https://api.github.com/users/SU-SWS/received_events","type":"Organization","site_admin":false},"repo":{"id":26981071,"node_id":"MDEwOlJlcG9zaXRvcnkyNjk4MTA3MQ==","name":"stanford_ssp","full_name":"SU-SWS/stanford_ssp","private":false,"owner":{"login":"SU-SWS","id":840730,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0MDczMA==","avatar_url":"https://avatars3.githubusercontent.com/u/840730?v=4","gravatar_id":"","url":"https://api.github.com/users/SU-SWS","html_url":"https://github.com/SU-SWS","followers_url":"https://api.github.com/users/SU-SWS/followers","following_url":"https://api.github.com/users/SU-SWS/following{/other_user}","gists_url":"https://api.github.com/users/SU-SWS/gists{/gist_id}","starred_url":"https://api.github.com/users/SU-SWS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SU-SWS/subscriptions","organizations_url":"https://api.github.com/users/SU-SWS/orgs","repos_url":"https://api.github.com/users/SU-SWS/repos","events_url":"https://api.github.com/users/SU-SWS/events{/privacy}","received_events_url":"https://api.github.com/users/SU-SWS/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/SU-SWS/stanford_ssp","description":"Drupal module for configuring SimpleSAMLphp in Stanford web environments","fork":false,"url":"https://api.github.com/repos/SU-SWS/stanford_ssp","forks_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/forks","keys_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/teams","hooks_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/hooks","issue_events_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/events{/number}","events_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/events","assignees_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/assignees{/user}","branches_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/branches{/branch}","tags_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/tags","blobs_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/refs{/sha}","trees_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/statuses/{sha}","languages_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/languages","stargazers_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/stargazers","contributors_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/contributors","subscribers_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/subscribers","subscription_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/subscription","commits_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/commits{/sha}","git_commits_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/commits{/sha}","comments_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/comments{/number}","issue_comment_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/comments{/number}","contents_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/contents/{+path}","compare_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/merges","archive_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/downloads","issues_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues{/number}","pulls_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls{/number}","milestones_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/milestones{/number}","notifications_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/labels{/name}","releases_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/releases{/id}","deployments_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/deployments","created_at":"2014-11-21T22:44:48Z","updated_at":"2018-12-04T17:11:50Z","pushed_at":"2018-12-09T23:55:40Z","git_url":"git://github.com/SU-SWS/stanford_ssp.git","ssh_url":"git@github.com:SU-SWS/stanford_ssp.git","clone_url":"https://github.com/SU-SWS/stanford_ssp.git","svn_url":"https://github.com/SU-SWS/stanford_ssp","homepage":null,"size":211,"stargazers_count":5,"watchers_count":5,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":6,"mirror_url":null,"archived":false,"open_issues_count":18,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":6,"open_issues":18,"watchers":5,"default_branch":"8.x-1.x"}},"base":{"label":"SU-SWS:8.x-1.x","ref":"8.x-1.x","sha":"5a81773843675b96104b5b27060220d03ee1ce9d","user":{"login":"SU-SWS","id":840730,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0MDczMA==","avatar_url":"https://avatars3.githubusercontent.com/u/840730?v=4","gravatar_id":"","url":"https://api.github.com/users/SU-SWS","html_url":"https://github.com/SU-SWS","followers_url":"https://api.github.com/users/SU-SWS/followers","following_url":"https://api.github.com/users/SU-SWS/following{/other_user}","gists_url":"https://api.github.com/users/SU-SWS/gists{/gist_id}","starred_url":"https://api.github.com/users/SU-SWS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SU-SWS/subscriptions","organizations_url":"https://api.github.com/users/SU-SWS/orgs","repos_url":"https://api.github.com/users/SU-SWS/repos","events_url":"https://api.github.com/users/SU-SWS/events{/privacy}","received_events_url":"https://api.github.com/users/SU-SWS/received_events","type":"Organization","site_admin":false},"repo":{"id":26981071,"node_id":"MDEwOlJlcG9zaXRvcnkyNjk4MTA3MQ==","name":"stanford_ssp","full_name":"SU-SWS/stanford_ssp","private":false,"owner":{"login":"SU-SWS","id":840730,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0MDczMA==","avatar_url":"https://avatars3.githubusercontent.com/u/840730?v=4","gravatar_id":"","url":"https://api.github.com/users/SU-SWS","html_url":"https://github.com/SU-SWS","followers_url":"https://api.github.com/users/SU-SWS/followers","following_url":"https://api.github.com/users/SU-SWS/following{/other_user}","gists_url":"https://api.github.com/users/SU-SWS/gists{/gist_id}","starred_url":"https://api.github.com/users/SU-SWS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SU-SWS/subscriptions","organizations_url":"https://api.github.com/users/SU-SWS/orgs","repos_url":"https://api.github.com/users/SU-SWS/repos","events_url":"https://api.github.com/users/SU-SWS/events{/privacy}","received_events_url":"https://api.github.com/users/SU-SWS/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/SU-SWS/stanford_ssp","description":"Drupal module for configuring SimpleSAMLphp in Stanford web environments","fork":false,"url":"https://api.github.com/repos/SU-SWS/stanford_ssp","forks_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/forks","keys_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/teams","hooks_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/hooks","issue_events_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/events{/number}","events_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/events","assignees_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/assignees{/user}","branches_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/branches{/branch}","tags_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/tags","blobs_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/refs{/sha}","trees_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/statuses/{sha}","languages_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/languages","stargazers_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/stargazers","contributors_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/contributors","subscribers_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/subscribers","subscription_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/subscription","commits_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/commits{/sha}","git_commits_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/git/commits{/sha}","comments_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/comments{/number}","issue_comment_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/comments{/number}","contents_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/contents/{+path}","compare_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/merges","archive_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/downloads","issues_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues{/number}","pulls_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls{/number}","milestones_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/milestones{/number}","notifications_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/labels{/name}","releases_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/releases{/id}","deployments_url":"https://api.github.com/repos/SU-SWS/stanford_ssp/deployments","created_at":"2014-11-21T22:44:48Z","updated_at":"2018-12-04T17:11:50Z","pushed_at":"2018-12-09T23:55:40Z","git_url":"git://github.com/SU-SWS/stanford_ssp.git","ssh_url":"git@github.com:SU-SWS/stanford_ssp.git","clone_url":"https://github.com/SU-SWS/stanford_ssp.git","svn_url":"https://github.com/SU-SWS/stanford_ssp","homepage":null,"size":211,"stargazers_count":5,"watchers_count":5,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":6,"mirror_url":null,"archived":false,"open_issues_count":18,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":6,"open_issues":18,"watchers":5,"default_branch":"8.x-1.x"}},"_links":{"self":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64"},"html":{"href":"https://github.com/SU-SWS/stanford_ssp/pull/64"},"issue":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/64"},"comments":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/issues/64/comments"},"review_comments":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64/comments"},"review_comment":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/pulls/64/commits"},"statuses":{"href":"https://api.github.com/repos/SU-SWS/stanford_ssp/statuses/3f79801784bb391cb94317c11617a88057ce38bf"}},"author_association":"NONE"}}
{"actor":{"display_login":"codeclimate"}}