{"action":"created","comment":{"url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/comments/150378164","pull_request_review_id":75926604,"id":150378164,"diff_hunk":"@@ -0,0 +1,139 @@\n+package seedu.address.logic.commands;\n+\n+import static seedu.address.logic.parser.CliSyntax.PREFIX_CONFIRM_PASSWORD;\n+import static seedu.address.logic.parser.CliSyntax.PREFIX_NEW_PASSWORD;\n+import static seedu.address.logic.parser.CliSyntax.PREFIX_PASSWORD;\n+\n+import java.nio.charset.StandardCharsets;\n+import java.util.logging.Logger;\n+\n+import com.google.common.hash.Hashing;\n+\n+import seedu.address.commons.core.LogsCenter;\n+import seedu.address.model.UserPrefs;\n+\n+//@@author charlesgoh\n+/**\n+ * Changes user's password provided old password is correct and new passwords match.\n+ */\n+public class ChangePasswordCommand extends Command {\n+    public static final String COMMAND_WORD = \"changepassword\";\n+    public static final String COMMAND_ALIAS = \"cps\";\n+\n+    public static final String MESSAGE_SUCCESS = \"Password changed successfully\";\n+\n+    public static final String MESSAGE_USAGE = COMMAND_WORD + \": Changes user password. \\n\"\n+            + \"[\" + PREFIX_PASSWORD + \"PASSWORD] \"\n+            + \"[\" + PREFIX_NEW_PASSWORD + \"NEWPASSWORD] \"\n+            + \"[\" + PREFIX_CONFIRM_PASSWORD + \"CONFIRMPASSWORD] \\n\"\n+            + \"Example: \" + COMMAND_WORD + \" \" + PREFIX_PASSWORD + \"password \"\n+            + PREFIX_NEW_PASSWORD + \"mynewpassword111 \" + PREFIX_CONFIRM_PASSWORD + \"mynewpassword111\\n\";\n+\n+    public static final String MESSAGE_INVALID_INPUT = \"Invalid Input.\\n\";\n+\n+    public static final String MESSAGE_OLD_NEW_PS_SAME = \"New password must be different from your old password\";\n+    public static final String MESSAGE_ERROR_OCCURED = \"An error occured. Please try again.\\n\";\n+    public static final String MESSAGE_PASSWORD_INCORRECT = \"Your password is incorrect. Please try again.\\n\";\n+    public static final String MESSAGE_PASSWORD_CONFIRMATION_INCORRECT = \"Your new password and confirmation password \"\n+            + \"do not match. Please try again\\n\";\n+\n+    private final Logger logger = LogsCenter.getLogger(ChangePasswordCommand.class);\n+\n+    private String oldPassword;\n+    private String newPassword;\n+    private String confirmationPassword;\n+\n+    /**\n+     * Takes in old password, new password and confirmation password from parser and creates a new\n+     * ChangePasswordCommand object\n+     * @param oldPassword\n+     * @param newPassword\n+     * @param confirmPassword\n+     */\n+    public ChangePasswordCommand(String oldPassword, String newPassword, String confirmPassword) {\n+        this.oldPassword = oldPassword;\n+        this.newPassword = newPassword;\n+        this.confirmationPassword = confirmPassword;\n+    }\n+\n+    /**\n+     * Forward hashes string using SHA256 encryption and returns hashed string\n+     * @param argument\n+     */\n+    private String forwardHash(String argument) {\n+        return Hashing.sha256().hashString(argument, StandardCharsets.UTF_8).toString();\n+    }\n+\n+    /**\n+     * Forward hashes the user input password and checks if it matches with the encrypted password saved\n+     */\n+    private boolean isOldPasswordCorrect() {\n+        String forwardHashedInputPassword = forwardHash(oldPassword);\n+        String forwardHashActualPassword;\n+        UserPrefs userPrefs = model.getUserPrefs();\n+        forwardHashActualPassword = userPrefs.getAddressBookEncryptedPassword();\n+        if (forwardHashActualPassword.equals(forwardHashedInputPassword)) {\n+            logger.info(\"Actual password and input password matches\");\n+            return true;\n+        } else {\n+            logger.warning(\"Actual password and input password do not match\");\n+            return false;\n+        }\n+    }\n+\n+    /**\n+     * Takes new input passwords and checks them against one another.\n+     */\n+    private boolean isNewPasswordInputsSame() {\n+        return newPassword.equals(confirmationPassword);\n+    }\n+\n+    /**\n+     * Checks if old password and new password are the same\n+     */\n+    private boolean isOldAndNewPasswordTheSame() {\n+        return oldPassword.equals(newPassword);\n+    }\n+\n+    @Override\n+    public CommandResult execute() {\n+        // Case where old password is incorrect\n+        if (!isOldPasswordCorrect()) {\n+            logger.warning(\"Password is incorrect. Note: Default password is 'password' \");\n+            return new CommandResult(MESSAGE_PASSWORD_INCORRECT);\n+        }\n+\n+        // Case where new password and confirmation password do not match\n+        if (!isNewPasswordInputsSame()) {\n+            logger.warning(\"New password and confirmation password do not match\");\n+            return new CommandResult(MESSAGE_PASSWORD_CONFIRMATION_INCORRECT);\n+        }\n+\n+        // Case where old and new passwords are the same\n+        if (isOldAndNewPasswordTheSame()) {\n+            logger.warning(\"Old password and new password cannot be the same\");\n+            return new CommandResult(MESSAGE_OLD_NEW_PS_SAME);","path":"src/main/java/seedu/address/logic/commands/ChangePasswordCommand.java","position":115,"original_position":115,"commit_id":"c2b3aa80944c466336eb16234eea83185953298f","original_commit_id":"c2b3aa80944c466336eb16234eea83185953298f","user":{"login":"Esilocke","id":26959239,"avatar_url":"https://avatars0.githubusercontent.com/u/26959239?v=4","gravatar_id":"","url":"https://api.github.com/users/Esilocke","html_url":"https://github.com/Esilocke","followers_url":"https://api.github.com/users/Esilocke/followers","following_url":"https://api.github.com/users/Esilocke/following{/other_user}","gists_url":"https://api.github.com/users/Esilocke/gists{/gist_id}","starred_url":"https://api.github.com/users/Esilocke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Esilocke/subscriptions","organizations_url":"https://api.github.com/users/Esilocke/orgs","repos_url":"https://api.github.com/users/Esilocke/repos","events_url":"https://api.github.com/users/Esilocke/events{/privacy}","received_events_url":"https://api.github.com/users/Esilocke/received_events","type":"User","site_admin":false},"body":"Rather than returning a CommandResult, throwing a CommandException might be more appropriate instead as the command did not pass. The logging will not be needed in this case.","created_at":"2017-11-11T08:13:12Z","updated_at":"2017-11-11T08:26:51Z","html_url":"https://github.com/CS2103AUG2017-W09-B2/main/pull/141#discussion_r150378164","pull_request_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/comments/150378164"},"html":{"href":"https://github.com/CS2103AUG2017-W09-B2/main/pull/141#discussion_r150378164"},"pull_request":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141"}}},"pull_request":{"url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141","id":151308076,"html_url":"https://github.com/CS2103AUG2017-W09-B2/main/pull/141","diff_url":"https://github.com/CS2103AUG2017-W09-B2/main/pull/141.diff","patch_url":"https://github.com/CS2103AUG2017-W09-B2/main/pull/141.patch","issue_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/issues/141","number":141,"state":"open","locked":false,"title":"[AVATAR + PSENCRYPTION] Avatar and Change Password Command with Encryption","user":{"login":"charlesgoh","id":15852016,"avatar_url":"https://avatars2.githubusercontent.com/u/15852016?v=4","gravatar_id":"","url":"https://api.github.com/users/charlesgoh","html_url":"https://github.com/charlesgoh","followers_url":"https://api.github.com/users/charlesgoh/followers","following_url":"https://api.github.com/users/charlesgoh/following{/other_user}","gists_url":"https://api.github.com/users/charlesgoh/gists{/gist_id}","starred_url":"https://api.github.com/users/charlesgoh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charlesgoh/subscriptions","organizations_url":"https://api.github.com/users/charlesgoh/orgs","repos_url":"https://api.github.com/users/charlesgoh/repos","events_url":"https://api.github.com/users/charlesgoh/events{/privacy}","received_events_url":"https://api.github.com/users/charlesgoh/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-11-08T07:09:39Z","updated_at":"2017-11-11T08:26:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2dead60c0795872f35aefebdeb106469ee64ae9d","assignee":{"login":"charlesgoh","id":15852016,"avatar_url":"https://avatars2.githubusercontent.com/u/15852016?v=4","gravatar_id":"","url":"https://api.github.com/users/charlesgoh","html_url":"https://github.com/charlesgoh","followers_url":"https://api.github.com/users/charlesgoh/followers","following_url":"https://api.github.com/users/charlesgoh/following{/other_user}","gists_url":"https://api.github.com/users/charlesgoh/gists{/gist_id}","starred_url":"https://api.github.com/users/charlesgoh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charlesgoh/subscriptions","organizations_url":"https://api.github.com/users/charlesgoh/orgs","repos_url":"https://api.github.com/users/charlesgoh/repos","events_url":"https://api.github.com/users/charlesgoh/events{/privacy}","received_events_url":"https://api.github.com/users/charlesgoh/received_events","type":"User","site_admin":false},"assignees":[{"login":"charlesgoh","id":15852016,"avatar_url":"https://avatars2.githubusercontent.com/u/15852016?v=4","gravatar_id":"","url":"https://api.github.com/users/charlesgoh","html_url":"https://github.com/charlesgoh","followers_url":"https://api.github.com/users/charlesgoh/followers","following_url":"https://api.github.com/users/charlesgoh/following{/other_user}","gists_url":"https://api.github.com/users/charlesgoh/gists{/gist_id}","starred_url":"https://api.github.com/users/charlesgoh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charlesgoh/subscriptions","organizations_url":"https://api.github.com/users/charlesgoh/orgs","repos_url":"https://api.github.com/users/charlesgoh/repos","events_url":"https://api.github.com/users/charlesgoh/events{/privacy}","received_events_url":"https://api.github.com/users/charlesgoh/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"jeffreygohkw","id":20789829,"avatar_url":"https://avatars0.githubusercontent.com/u/20789829?v=4","gravatar_id":"","url":"https://api.github.com/users/jeffreygohkw","html_url":"https://github.com/jeffreygohkw","followers_url":"https://api.github.com/users/jeffreygohkw/followers","following_url":"https://api.github.com/users/jeffreygohkw/following{/other_user}","gists_url":"https://api.github.com/users/jeffreygohkw/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffreygohkw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffreygohkw/subscriptions","organizations_url":"https://api.github.com/users/jeffreygohkw/orgs","repos_url":"https://api.github.com/users/jeffreygohkw/repos","events_url":"https://api.github.com/users/jeffreygohkw/events{/privacy}","received_events_url":"https://api.github.com/users/jeffreygohkw/received_events","type":"User","site_admin":false},{"login":"wangyiming1019","id":31090843,"avatar_url":"https://avatars2.githubusercontent.com/u/31090843?v=4","gravatar_id":"","url":"https://api.github.com/users/wangyiming1019","html_url":"https://github.com/wangyiming1019","followers_url":"https://api.github.com/users/wangyiming1019/followers","following_url":"https://api.github.com/users/wangyiming1019/following{/other_user}","gists_url":"https://api.github.com/users/wangyiming1019/gists{/gist_id}","starred_url":"https://api.github.com/users/wangyiming1019/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wangyiming1019/subscriptions","organizations_url":"https://api.github.com/users/wangyiming1019/orgs","repos_url":"https://api.github.com/users/wangyiming1019/repos","events_url":"https://api.github.com/users/wangyiming1019/events{/privacy}","received_events_url":"https://api.github.com/users/wangyiming1019/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/milestones/5","html_url":"https://github.com/CS2103AUG2017-W09-B2/main/milestone/5","labels_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/milestones/5/labels","id":2895792,"number":5,"title":"v1.5","description":"Release for v1.5","creator":{"login":"Esilocke","id":26959239,"avatar_url":"https://avatars0.githubusercontent.com/u/26959239?v=4","gravatar_id":"","url":"https://api.github.com/users/Esilocke","html_url":"https://github.com/Esilocke","followers_url":"https://api.github.com/users/Esilocke/followers","following_url":"https://api.github.com/users/Esilocke/following{/other_user}","gists_url":"https://api.github.com/users/Esilocke/gists{/gist_id}","starred_url":"https://api.github.com/users/Esilocke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Esilocke/subscriptions","organizations_url":"https://api.github.com/users/Esilocke/orgs","repos_url":"https://api.github.com/users/Esilocke/repos","events_url":"https://api.github.com/users/Esilocke/events{/privacy}","received_events_url":"https://api.github.com/users/Esilocke/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":5,"state":"open","created_at":"2017-11-07T23:27:54Z","updated_at":"2017-11-11T06:07:28Z","due_on":"2017-11-12T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141/commits","review_comments_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141/comments","review_comment_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/issues/141/comments","statuses_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/statuses/c2b3aa80944c466336eb16234eea83185953298f","head":{"label":"charlesgoh:avatar2","ref":"avatar2","sha":"c2b3aa80944c466336eb16234eea83185953298f","user":{"login":"charlesgoh","id":15852016,"avatar_url":"https://avatars2.githubusercontent.com/u/15852016?v=4","gravatar_id":"","url":"https://api.github.com/users/charlesgoh","html_url":"https://github.com/charlesgoh","followers_url":"https://api.github.com/users/charlesgoh/followers","following_url":"https://api.github.com/users/charlesgoh/following{/other_user}","gists_url":"https://api.github.com/users/charlesgoh/gists{/gist_id}","starred_url":"https://api.github.com/users/charlesgoh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charlesgoh/subscriptions","organizations_url":"https://api.github.com/users/charlesgoh/orgs","repos_url":"https://api.github.com/users/charlesgoh/repos","events_url":"https://api.github.com/users/charlesgoh/events{/privacy}","received_events_url":"https://api.github.com/users/charlesgoh/received_events","type":"User","site_admin":false},"repo":{"id":104894131,"name":"addressbook-level4","full_name":"charlesgoh/addressbook-level4","owner":{"login":"charlesgoh","id":15852016,"avatar_url":"https://avatars2.githubusercontent.com/u/15852016?v=4","gravatar_id":"","url":"https://api.github.com/users/charlesgoh","html_url":"https://github.com/charlesgoh","followers_url":"https://api.github.com/users/charlesgoh/followers","following_url":"https://api.github.com/users/charlesgoh/following{/other_user}","gists_url":"https://api.github.com/users/charlesgoh/gists{/gist_id}","starred_url":"https://api.github.com/users/charlesgoh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charlesgoh/subscriptions","organizations_url":"https://api.github.com/users/charlesgoh/orgs","repos_url":"https://api.github.com/users/charlesgoh/repos","events_url":"https://api.github.com/users/charlesgoh/events{/privacy}","received_events_url":"https://api.github.com/users/charlesgoh/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/charlesgoh/addressbook-level4","description":"Address Book sample application (Level 4)","fork":true,"url":"https://api.github.com/repos/charlesgoh/addressbook-level4","forks_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/forks","keys_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/keys{/key_id}","collaborators_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/teams","hooks_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/hooks","issue_events_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/issues/events{/number}","events_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/events","assignees_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/assignees{/user}","branches_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/branches{/branch}","tags_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/tags","blobs_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/git/refs{/sha}","trees_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/git/trees{/sha}","statuses_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/statuses/{sha}","languages_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/languages","stargazers_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/stargazers","contributors_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/contributors","subscribers_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/subscribers","subscription_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/subscription","commits_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/commits{/sha}","git_commits_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/git/commits{/sha}","comments_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/comments{/number}","issue_comment_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/issues/comments{/number}","contents_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/contents/{+path}","compare_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/compare/{base}...{head}","merges_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/merges","archive_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/downloads","issues_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/issues{/number}","pulls_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/pulls{/number}","milestones_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/milestones{/number}","notifications_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/labels{/name}","releases_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/releases{/id}","deployments_url":"https://api.github.com/repos/charlesgoh/addressbook-level4/deployments","created_at":"2017-09-26T14:18:22Z","updated_at":"2017-09-26T14:18:25Z","pushed_at":"2017-11-11T07:28:19Z","git_url":"git://github.com/charlesgoh/addressbook-level4.git","ssh_url":"git@github.com:charlesgoh/addressbook-level4.git","clone_url":"https://github.com/charlesgoh/addressbook-level4.git","svn_url":"https://github.com/charlesgoh/addressbook-level4","homepage":"https://nus-cs2103-AY1718S1.github.io/addressbook-level4","size":21912,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"altersize-buttons"}},"base":{"label":"CS2103AUG2017-W09-B2:master","ref":"master","sha":"dc28e8dc6cad5821d67694ebcc61ac2c63a42898","user":{"login":"CS2103AUG2017-W09-B2","id":31908763,"avatar_url":"https://avatars0.githubusercontent.com/u/31908763?v=4","gravatar_id":"","url":"https://api.github.com/users/CS2103AUG2017-W09-B2","html_url":"https://github.com/CS2103AUG2017-W09-B2","followers_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/followers","following_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/following{/other_user}","gists_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/gists{/gist_id}","starred_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/subscriptions","organizations_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/orgs","repos_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/repos","events_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/events{/privacy}","received_events_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/received_events","type":"Organization","site_admin":false},"repo":{"id":104466578,"name":"main","full_name":"CS2103AUG2017-W09-B2/main","owner":{"login":"CS2103AUG2017-W09-B2","id":31908763,"avatar_url":"https://avatars0.githubusercontent.com/u/31908763?v=4","gravatar_id":"","url":"https://api.github.com/users/CS2103AUG2017-W09-B2","html_url":"https://github.com/CS2103AUG2017-W09-B2","followers_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/followers","following_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/following{/other_user}","gists_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/gists{/gist_id}","starred_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/subscriptions","organizations_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/orgs","repos_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/repos","events_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/events{/privacy}","received_events_url":"https://api.github.com/users/CS2103AUG2017-W09-B2/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CS2103AUG2017-W09-B2/main","description":"Address Book sample application (Level 4)","fork":true,"url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main","forks_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/forks","keys_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/teams","hooks_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/hooks","issue_events_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/issues/events{/number}","events_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/events","assignees_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/assignees{/user}","branches_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/branches{/branch}","tags_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/tags","blobs_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/git/refs{/sha}","trees_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/statuses/{sha}","languages_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/languages","stargazers_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/stargazers","contributors_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/contributors","subscribers_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/subscribers","subscription_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/subscription","commits_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/commits{/sha}","git_commits_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/git/commits{/sha}","comments_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/comments{/number}","issue_comment_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/issues/comments{/number}","contents_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/contents/{+path}","compare_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/merges","archive_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/downloads","issues_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/issues{/number}","pulls_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls{/number}","milestones_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/milestones{/number}","notifications_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/labels{/name}","releases_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/releases{/id}","deployments_url":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/deployments","created_at":"2017-09-22T11:22:24Z","updated_at":"2017-10-20T15:11:27Z","pushed_at":"2017-11-11T07:28:20Z","git_url":"git://github.com/CS2103AUG2017-W09-B2/main.git","ssh_url":"git@github.com:CS2103AUG2017-W09-B2/main.git","clone_url":"https://github.com/CS2103AUG2017-W09-B2/main.git","svn_url":"https://github.com/CS2103AUG2017-W09-B2/main","homepage":"https://nus-cs2103-AY1718S1.github.io/addressbook-level4","size":22852,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":10,"forks":4,"open_issues":10,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141"},"html":{"href":"https://github.com/CS2103AUG2017-W09-B2/main/pull/141"},"issue":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/issues/141"},"comments":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/issues/141/comments"},"review_comments":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141/comments"},"review_comment":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/pulls/141/commits"},"statuses":{"href":"https://api.github.com/repos/CS2103AUG2017-W09-B2/main/statuses/c2b3aa80944c466336eb16234eea83185953298f"}},"author_association":"NONE"}}
{"actor":{"display_login":"Esilocke"}}