{"action":"created","comment":{"url":"https://api.github.com/repos/owncloud/notifications_mail/pulls/comments/169641891","pull_request_review_id":98199372,"id":169641891,"diff_hunk":"@@ -0,0 +1,181 @@\n+<?php\n+/**\n+ * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es>\n+ *\n+ * @copyright Copyright (c) 2018, ownCloud GmbH\n+ * @license GPL-2.0\n+ *\n+ * This code is free software: you can redistribute it and/or modify\n+ * it under the terms of the GNU General Public License, version 2,\n+ * as published by the Free Software Foundation.\n+ *\n+ * This program is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n+ * GNU General Public License for more details.\n+ *\n+ * You should have received a copy of the GNU General Public License, version 2,\n+ * along with this program.  If not, see <http://www.gnu.org/licenses/>\n+ *\n+ */\n+\n+namespace OCA\\Notifications_Mail\\Controller;\n+\n+use OCP\\AppFramework\\Controller;\n+use OCP\\AppFramework\\Http;\n+use OCP\\AppFramework\\Http\\JSONResponse;\n+use OCP\\IUserSession;\n+use OCP\\IConfig;\n+use OCP\\IRequest;\n+\n+class NotificationOptionsController extends Controller {\n+\t/** @var IUserSession */\n+\tprivate $userSession;\n+\t/** @var IConfig */\n+\tprivate $config;\n+\n+\tprivate $valid_option_values = [\n+\t\t'email_sending_option' => [\n+\t\t\t'values' => ['never', 'action', 'always'],\n+\t\t\t'default' => 'never',\n+\t\t],\n+\t];\n+\n+\tpublic function __construct(IUserSession $userSession, IConfig $config, IRequest $request) {\n+\t\tparent::__construct('notifications_mail', $request);\n+\t\t$this->userSession = $userSession;\n+\t\t$this->config = $config;\n+\t}\n+\n+\t/**\n+\t * @param array $options such as [option1 => value1, option2 => value2]. Valid options and their\n+\t * corresponding values must be defined in the $valid_option_values private variable.\n+\t * @return JSONResponse\n+\t */\n+\tprivate function validateAndSave($options) {\n+\t\t$userObject = $this->userSession->getUser();\n+\t\tif ($userObject === null) {\n+\t\t\treturn new JSONResponse([\n+\t\t\t\t'data' => [\n+\t\t\t\t\t'message' => 'Unknown user session. It is not possible to set the option'\n+\t\t\t\t]\n+\t\t\t], Http::STATUS_FORBIDDEN);\n+\t\t}\n+\n+\t\t$missingKeysError = [];\n+\t\t$invalidValuesError = [];\n+\t\t$validOptions = [];\n+\t\tforeach ($options as $key => $value) {\n+\t\t\tif (isset($this->valid_option_values[$key])) {\n+\t\t\t\tif (!in_array($value, $this->valid_option_values[$key]['values'], true)) {\n+\t\t\t\t\t$invalidValuesError[$key] = $value;\n+\t\t\t\t} else {\n+\t\t\t\t\t$validOptions[$key] = $value;\n+\t\t\t\t}\n+\t\t\t} else {\n+\t\t\t\t$missingKeysError[$key] = $value;\n+\t\t\t}\n+\t\t}\n+\n+\t\t// reject everything if any option isn't valid\n+\t\tif (!empty($invalidValuesError) || !empty($missingKeysError)) {\n+\t\t\treturn new JSONResponse([\n+\t\t\t\t'data' => [\n+\t\t\t\t\t'message' => 'Option not supported',\n+\t\t\t\t\t'invalid' => $invalidValuesError,\n+\t\t\t\t\t'missing' => $missingKeysError,\n+\t\t\t\t]\n+\t\t\t], Http::STATUS_BAD_REQUEST);\n+\t\t}\n+\n+\t\t$userid = $userObject->getUID();\n+\t\tforeach ($validOptions as $option => $optionValue) {\n+\t\t\t$this->config->setUserValue($userid, 'notifications_mail', $option, $optionValue);\n+\t\t}\n+\n+\t\treturn new JSONResponse([\n+\t\t\t'data' => [\n+\t\t\t\t'message' => 'Saved',\n+\t\t\t\t'options' => $this->getOptionsFromConfig($userid),\n+\t\t\t]\n+\t\t]);\n+\t}\n+\n+\t/**\n+\t * @NoAdminRequired\n+\t * @return JSONResponse\n+\t */\n+\tpublic function setNotificationOptionsPartial() {\n+\t\t$options = $this->fetchParamsFromRequest();\n+\t\treturn $this->validateAndSave($options);\n+\t}\n+\n+\t/**\n+\t * @NoAdminRequired\n+\t * @return JSONResponse\n+\t */\n+\tpublic function setNotificationOptions() {\n+\t\t$options = $this->fetchParamsFromRequest();\n+\t\t// check that all the keys are filled\n+\t\tforeach ($this->valid_option_values as $key => $value) {\n+\t\t\tif (!isset($options[$key])) {\n+\t\t\t\treturn new JSONResponse([\n+\t\t\t\t\t'data' => [\n+\t\t\t\t\t\t'message' => 'Incomplete data',\n+\t\t\t\t\t]\n+\t\t\t\t], Http::STATUS_BAD_REQUEST);\n+\t\t\t}\n+\t\t}\n+\t\treturn $this->validateAndSave($options);\n+\t}\n+\n+\t/**\n+\t * @NoAdminRequired\n+\t * Get the list of options and their corresponding values (or default values for each unset option)\n+\t */\n+\tpublic function getNotificationOptions() {\n+\t\t$userObject = $this->userSession->getUser();\n+\t\tif ($userObject === null) {","path":"lib/Controller/NotificationOptionsController.php","position":138,"original_position":138,"commit_id":"cfdd5056989b9db9814dad12316656bf56577d82","original_commit_id":"cfdd5056989b9db9814dad12316656bf56577d82","user":{"login":"PVince81","id":277525,"avatar_url":"https://avatars2.githubusercontent.com/u/277525?v=4","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"body":"can this even happen ? I'd expect any of those routes to anyway only work with logged in users","created_at":"2018-02-21T13:53:10Z","updated_at":"2018-02-21T13:53:10Z","html_url":"https://github.com/owncloud/notifications_mail/pull/3#discussion_r169641891","pull_request_url":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/owncloud/notifications_mail/pulls/comments/169641891"},"html":{"href":"https://github.com/owncloud/notifications_mail/pull/3#discussion_r169641891"},"pull_request":{"href":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3"}}},"pull_request":{"url":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3","id":169317322,"html_url":"https://github.com/owncloud/notifications_mail/pull/3","diff_url":"https://github.com/owncloud/notifications_mail/pull/3.diff","patch_url":"https://github.com/owncloud/notifications_mail/pull/3.patch","issue_url":"https://api.github.com/repos/owncloud/notifications_mail/issues/3","number":3,"state":"open","locked":false,"title":"First version of the app","user":{"login":"jvillafanez","id":1477829,"avatar_url":"https://avatars0.githubusercontent.com/u/1477829?v=4","gravatar_id":"","url":"https://api.github.com/users/jvillafanez","html_url":"https://github.com/jvillafanez","followers_url":"https://api.github.com/users/jvillafanez/followers","following_url":"https://api.github.com/users/jvillafanez/following{/other_user}","gists_url":"https://api.github.com/users/jvillafanez/gists{/gist_id}","starred_url":"https://api.github.com/users/jvillafanez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvillafanez/subscriptions","organizations_url":"https://api.github.com/users/jvillafanez/orgs","repos_url":"https://api.github.com/users/jvillafanez/repos","events_url":"https://api.github.com/users/jvillafanez/events{/privacy}","received_events_url":"https://api.github.com/users/jvillafanez/received_events","type":"User","site_admin":false},"body":"Things still pending to adjust:\r\n* [ ] minimum required version for ownCloud (depends on owncloud/core#30489 -> likely 10.0.8)\r\n* [ ] section in the settings page to place the configuration (@pmaier1 to decide, currently in the \"additional\" section of the personal settings)\r\n* [ ] additional information in the info.xml file (screenshot, category, etc)","created_at":"2018-02-15T09:15:59Z","updated_at":"2018-02-21T13:53:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2ffbbf29149b39a8d2dacf959216e95736e0e4f3","assignee":{"login":"jvillafanez","id":1477829,"avatar_url":"https://avatars0.githubusercontent.com/u/1477829?v=4","gravatar_id":"","url":"https://api.github.com/users/jvillafanez","html_url":"https://github.com/jvillafanez","followers_url":"https://api.github.com/users/jvillafanez/followers","following_url":"https://api.github.com/users/jvillafanez/following{/other_user}","gists_url":"https://api.github.com/users/jvillafanez/gists{/gist_id}","starred_url":"https://api.github.com/users/jvillafanez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvillafanez/subscriptions","organizations_url":"https://api.github.com/users/jvillafanez/orgs","repos_url":"https://api.github.com/users/jvillafanez/repos","events_url":"https://api.github.com/users/jvillafanez/events{/privacy}","received_events_url":"https://api.github.com/users/jvillafanez/received_events","type":"User","site_admin":false},"assignees":[{"login":"jvillafanez","id":1477829,"avatar_url":"https://avatars0.githubusercontent.com/u/1477829?v=4","gravatar_id":"","url":"https://api.github.com/users/jvillafanez","html_url":"https://github.com/jvillafanez","followers_url":"https://api.github.com/users/jvillafanez/followers","following_url":"https://api.github.com/users/jvillafanez/following{/other_user}","gists_url":"https://api.github.com/users/jvillafanez/gists{/gist_id}","starred_url":"https://api.github.com/users/jvillafanez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvillafanez/subscriptions","organizations_url":"https://api.github.com/users/jvillafanez/orgs","repos_url":"https://api.github.com/users/jvillafanez/repos","events_url":"https://api.github.com/users/jvillafanez/events{/privacy}","received_events_url":"https://api.github.com/users/jvillafanez/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3/commits","review_comments_url":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3/comments","review_comment_url":"https://api.github.com/repos/owncloud/notifications_mail/pulls/comments{/number}","comments_url":"https://api.github.com/repos/owncloud/notifications_mail/issues/3/comments","statuses_url":"https://api.github.com/repos/owncloud/notifications_mail/statuses/cfdd5056989b9db9814dad12316656bf56577d82","head":{"label":"owncloud:first_app_version","ref":"first_app_version","sha":"cfdd5056989b9db9814dad12316656bf56577d82","user":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"repo":{"id":121528835,"name":"notifications_mail","full_name":"owncloud/notifications_mail","owner":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/owncloud/notifications_mail","description":null,"fork":false,"url":"https://api.github.com/repos/owncloud/notifications_mail","forks_url":"https://api.github.com/repos/owncloud/notifications_mail/forks","keys_url":"https://api.github.com/repos/owncloud/notifications_mail/keys{/key_id}","collaborators_url":"https://api.github.com/repos/owncloud/notifications_mail/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/owncloud/notifications_mail/teams","hooks_url":"https://api.github.com/repos/owncloud/notifications_mail/hooks","issue_events_url":"https://api.github.com/repos/owncloud/notifications_mail/issues/events{/number}","events_url":"https://api.github.com/repos/owncloud/notifications_mail/events","assignees_url":"https://api.github.com/repos/owncloud/notifications_mail/assignees{/user}","branches_url":"https://api.github.com/repos/owncloud/notifications_mail/branches{/branch}","tags_url":"https://api.github.com/repos/owncloud/notifications_mail/tags","blobs_url":"https://api.github.com/repos/owncloud/notifications_mail/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/owncloud/notifications_mail/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/owncloud/notifications_mail/git/refs{/sha}","trees_url":"https://api.github.com/repos/owncloud/notifications_mail/git/trees{/sha}","statuses_url":"https://api.github.com/repos/owncloud/notifications_mail/statuses/{sha}","languages_url":"https://api.github.com/repos/owncloud/notifications_mail/languages","stargazers_url":"https://api.github.com/repos/owncloud/notifications_mail/stargazers","contributors_url":"https://api.github.com/repos/owncloud/notifications_mail/contributors","subscribers_url":"https://api.github.com/repos/owncloud/notifications_mail/subscribers","subscription_url":"https://api.github.com/repos/owncloud/notifications_mail/subscription","commits_url":"https://api.github.com/repos/owncloud/notifications_mail/commits{/sha}","git_commits_url":"https://api.github.com/repos/owncloud/notifications_mail/git/commits{/sha}","comments_url":"https://api.github.com/repos/owncloud/notifications_mail/comments{/number}","issue_comment_url":"https://api.github.com/repos/owncloud/notifications_mail/issues/comments{/number}","contents_url":"https://api.github.com/repos/owncloud/notifications_mail/contents/{+path}","compare_url":"https://api.github.com/repos/owncloud/notifications_mail/compare/{base}...{head}","merges_url":"https://api.github.com/repos/owncloud/notifications_mail/merges","archive_url":"https://api.github.com/repos/owncloud/notifications_mail/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/owncloud/notifications_mail/downloads","issues_url":"https://api.github.com/repos/owncloud/notifications_mail/issues{/number}","pulls_url":"https://api.github.com/repos/owncloud/notifications_mail/pulls{/number}","milestones_url":"https://api.github.com/repos/owncloud/notifications_mail/milestones{/number}","notifications_url":"https://api.github.com/repos/owncloud/notifications_mail/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/owncloud/notifications_mail/labels{/name}","releases_url":"https://api.github.com/repos/owncloud/notifications_mail/releases{/id}","deployments_url":"https://api.github.com/repos/owncloud/notifications_mail/deployments","created_at":"2018-02-14T15:48:49Z","updated_at":"2018-02-14T15:48:49Z","pushed_at":"2018-02-21T12:55:28Z","git_url":"git://github.com/owncloud/notifications_mail.git","ssh_url":"git@github.com:owncloud/notifications_mail.git","clone_url":"https://github.com/owncloud/notifications_mail.git","svn_url":"https://github.com/owncloud/notifications_mail","homepage":null,"size":22,"stargazers_count":0,"watchers_count":0,"language":null,"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":1,"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"},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"owncloud:master","ref":"master","sha":"5dd9197d7e01aac72e6f86ebd9ed6d35c97be6d3","user":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"repo":{"id":121528835,"name":"notifications_mail","full_name":"owncloud/notifications_mail","owner":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/owncloud/notifications_mail","description":null,"fork":false,"url":"https://api.github.com/repos/owncloud/notifications_mail","forks_url":"https://api.github.com/repos/owncloud/notifications_mail/forks","keys_url":"https://api.github.com/repos/owncloud/notifications_mail/keys{/key_id}","collaborators_url":"https://api.github.com/repos/owncloud/notifications_mail/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/owncloud/notifications_mail/teams","hooks_url":"https://api.github.com/repos/owncloud/notifications_mail/hooks","issue_events_url":"https://api.github.com/repos/owncloud/notifications_mail/issues/events{/number}","events_url":"https://api.github.com/repos/owncloud/notifications_mail/events","assignees_url":"https://api.github.com/repos/owncloud/notifications_mail/assignees{/user}","branches_url":"https://api.github.com/repos/owncloud/notifications_mail/branches{/branch}","tags_url":"https://api.github.com/repos/owncloud/notifications_mail/tags","blobs_url":"https://api.github.com/repos/owncloud/notifications_mail/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/owncloud/notifications_mail/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/owncloud/notifications_mail/git/refs{/sha}","trees_url":"https://api.github.com/repos/owncloud/notifications_mail/git/trees{/sha}","statuses_url":"https://api.github.com/repos/owncloud/notifications_mail/statuses/{sha}","languages_url":"https://api.github.com/repos/owncloud/notifications_mail/languages","stargazers_url":"https://api.github.com/repos/owncloud/notifications_mail/stargazers","contributors_url":"https://api.github.com/repos/owncloud/notifications_mail/contributors","subscribers_url":"https://api.github.com/repos/owncloud/notifications_mail/subscribers","subscription_url":"https://api.github.com/repos/owncloud/notifications_mail/subscription","commits_url":"https://api.github.com/repos/owncloud/notifications_mail/commits{/sha}","git_commits_url":"https://api.github.com/repos/owncloud/notifications_mail/git/commits{/sha}","comments_url":"https://api.github.com/repos/owncloud/notifications_mail/comments{/number}","issue_comment_url":"https://api.github.com/repos/owncloud/notifications_mail/issues/comments{/number}","contents_url":"https://api.github.com/repos/owncloud/notifications_mail/contents/{+path}","compare_url":"https://api.github.com/repos/owncloud/notifications_mail/compare/{base}...{head}","merges_url":"https://api.github.com/repos/owncloud/notifications_mail/merges","archive_url":"https://api.github.com/repos/owncloud/notifications_mail/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/owncloud/notifications_mail/downloads","issues_url":"https://api.github.com/repos/owncloud/notifications_mail/issues{/number}","pulls_url":"https://api.github.com/repos/owncloud/notifications_mail/pulls{/number}","milestones_url":"https://api.github.com/repos/owncloud/notifications_mail/milestones{/number}","notifications_url":"https://api.github.com/repos/owncloud/notifications_mail/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/owncloud/notifications_mail/labels{/name}","releases_url":"https://api.github.com/repos/owncloud/notifications_mail/releases{/id}","deployments_url":"https://api.github.com/repos/owncloud/notifications_mail/deployments","created_at":"2018-02-14T15:48:49Z","updated_at":"2018-02-14T15:48:49Z","pushed_at":"2018-02-21T12:55:28Z","git_url":"git://github.com/owncloud/notifications_mail.git","ssh_url":"git@github.com:owncloud/notifications_mail.git","clone_url":"https://github.com/owncloud/notifications_mail.git","svn_url":"https://github.com/owncloud/notifications_mail","homepage":null,"size":22,"stargazers_count":0,"watchers_count":0,"language":null,"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":1,"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"},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3"},"html":{"href":"https://github.com/owncloud/notifications_mail/pull/3"},"issue":{"href":"https://api.github.com/repos/owncloud/notifications_mail/issues/3"},"comments":{"href":"https://api.github.com/repos/owncloud/notifications_mail/issues/3/comments"},"review_comments":{"href":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3/comments"},"review_comment":{"href":"https://api.github.com/repos/owncloud/notifications_mail/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/owncloud/notifications_mail/pulls/3/commits"},"statuses":{"href":"https://api.github.com/repos/owncloud/notifications_mail/statuses/cfdd5056989b9db9814dad12316656bf56577d82"}},"author_association":"NONE"}}
{"actor":{"display_login":"PVince81"}}