{"action":"opened","number":120,"pull_request":{"url":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/120","id":95917077,"html_url":"https://github.com/keepassxreboot/keepassxc/pull/120","diff_url":"https://github.com/keepassxreboot/keepassxc/pull/120.diff","patch_url":"https://github.com/keepassxreboot/keepassxc/pull/120.patch","issue_url":"https://api.github.com/repos/keepassxreboot/keepassxc/issues/120","number":120,"state":"open","locked":false,"title":"CSV import feature delivered","user":{"login":"seatedscribe","id":13281636,"avatar_url":"https://avatars.githubusercontent.com/u/13281636?v=3","gravatar_id":"","url":"https://api.github.com/users/seatedscribe","html_url":"https://github.com/seatedscribe","followers_url":"https://api.github.com/users/seatedscribe/followers","following_url":"https://api.github.com/users/seatedscribe/following{/other_user}","gists_url":"https://api.github.com/users/seatedscribe/gists{/gist_id}","starred_url":"https://api.github.com/users/seatedscribe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seatedscribe/subscriptions","organizations_url":"https://api.github.com/users/seatedscribe/orgs","repos_url":"https://api.github.com/users/seatedscribe/repos","events_url":"https://api.github.com/users/seatedscribe/events{/privacy}","received_events_url":"https://api.github.com/users/seatedscribe/received_events","type":"User","site_admin":false},"body":"<!--- Provide a general summary of your changes in the Title above -->\r\nNow it is possible to import databases from straight CSV text file format and from other password managers (as long as they provide a CSV export feature).\r\n\r\n## Description\r\n<!--- Describe your changes in detail -->\r\n\r\n## Motivation and Context\r\n<!--- Why is this change required? What problem does it solve? -->\r\n<!--- If it fixes an open issue, please link to the issue here. -->\r\n\r\n## How Has This Been Tested?\r\n<!--- Please describe in detail how you tested your changes. -->\r\n<!--- Include details of your testing environment, and the tests you ran to -->\r\n<!--- see how your change affects other areas of the code, etc. -->\r\nPattern test of the CSV parser are available in tests/ directory - see TestCsvParser.{h,cpp}\r\n\r\n## Screenshots (if appropriate):\r\n\r\n## Types of changes\r\nNew feature: CSV import\r\n\r\n<!--- What types of changes does your code introduce? If it apply to your pull request, -->\r\n<!--- replace all the `:negative_squared_cross_mark:` with `:white_check_mark:` -->\r\n<!--- Everybody loves emoji -->\r\n- :negative_squared_cross_mark: Bug fix (non-breaking change which fixes an issue)\r\n- :white_check_mark: New feature (non-breaking change which adds functionality)\r\n- :negative_squared_cross_mark: Breaking change (fix or feature that would cause existing functionality to change)\r\n\r\n## Checklist:\r\n<!--- Go over all the following points, if it apply to your pull request, -->\r\n<!--- replace all the `:negative_squared_cross_mark:` with `:white_check_mark:`. -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n<!--- Pull Requests that fail the [REQUIRED] field will likely be sent back for corrections or rejected  -->\r\n- :white_check_mark: I have read the **CONTRIBUTING** document.\r\n- :white_check_mark: My code follows the code style of this project.\r\n- :white_check_mark: All new and existing tests passed.\r\n- :white_check_mark: My change requires a change to the documentation.\r\n- :negative_squared_cross_mark: I have updated the documentation accordingly.\r\n- :white_check_mark: I have added tests to cover my changes.\r\n\r\nBest regards,\r\nEnrico\r\n","created_at":"2016-11-30T15:49:47Z","updated_at":"2016-11-30T15:49:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ed5eb311a480a94235a60a38bcc45cd22f579540","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/120/commits","review_comments_url":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/120/comments","review_comment_url":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/keepassxreboot/keepassxc/issues/120/comments","statuses_url":"https://api.github.com/repos/keepassxreboot/keepassxc/statuses/30bb3123693f88c8f49ccca0a022c1b4916068fc","head":{"label":"seatedscribe:feature/import-from-csv","ref":"feature/import-from-csv","sha":"30bb3123693f88c8f49ccca0a022c1b4916068fc","user":{"login":"seatedscribe","id":13281636,"avatar_url":"https://avatars.githubusercontent.com/u/13281636?v=3","gravatar_id":"","url":"https://api.github.com/users/seatedscribe","html_url":"https://github.com/seatedscribe","followers_url":"https://api.github.com/users/seatedscribe/followers","following_url":"https://api.github.com/users/seatedscribe/following{/other_user}","gists_url":"https://api.github.com/users/seatedscribe/gists{/gist_id}","starred_url":"https://api.github.com/users/seatedscribe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seatedscribe/subscriptions","organizations_url":"https://api.github.com/users/seatedscribe/orgs","repos_url":"https://api.github.com/users/seatedscribe/repos","events_url":"https://api.github.com/users/seatedscribe/events{/privacy}","received_events_url":"https://api.github.com/users/seatedscribe/received_events","type":"User","site_admin":false},"repo":{"id":75189912,"name":"keepassxc","full_name":"seatedscribe/keepassxc","owner":{"login":"seatedscribe","id":13281636,"avatar_url":"https://avatars.githubusercontent.com/u/13281636?v=3","gravatar_id":"","url":"https://api.github.com/users/seatedscribe","html_url":"https://github.com/seatedscribe","followers_url":"https://api.github.com/users/seatedscribe/followers","following_url":"https://api.github.com/users/seatedscribe/following{/other_user}","gists_url":"https://api.github.com/users/seatedscribe/gists{/gist_id}","starred_url":"https://api.github.com/users/seatedscribe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seatedscribe/subscriptions","organizations_url":"https://api.github.com/users/seatedscribe/orgs","repos_url":"https://api.github.com/users/seatedscribe/repos","events_url":"https://api.github.com/users/seatedscribe/events{/privacy}","received_events_url":"https://api.github.com/users/seatedscribe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/seatedscribe/keepassxc","description":"KeePassXC is a cross platform community driven port of the windows application “Keepass Password Safe”.","fork":true,"url":"https://api.github.com/repos/seatedscribe/keepassxc","forks_url":"https://api.github.com/repos/seatedscribe/keepassxc/forks","keys_url":"https://api.github.com/repos/seatedscribe/keepassxc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seatedscribe/keepassxc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seatedscribe/keepassxc/teams","hooks_url":"https://api.github.com/repos/seatedscribe/keepassxc/hooks","issue_events_url":"https://api.github.com/repos/seatedscribe/keepassxc/issues/events{/number}","events_url":"https://api.github.com/repos/seatedscribe/keepassxc/events","assignees_url":"https://api.github.com/repos/seatedscribe/keepassxc/assignees{/user}","branches_url":"https://api.github.com/repos/seatedscribe/keepassxc/branches{/branch}","tags_url":"https://api.github.com/repos/seatedscribe/keepassxc/tags","blobs_url":"https://api.github.com/repos/seatedscribe/keepassxc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seatedscribe/keepassxc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seatedscribe/keepassxc/git/refs{/sha}","trees_url":"https://api.github.com/repos/seatedscribe/keepassxc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seatedscribe/keepassxc/statuses/{sha}","languages_url":"https://api.github.com/repos/seatedscribe/keepassxc/languages","stargazers_url":"https://api.github.com/repos/seatedscribe/keepassxc/stargazers","contributors_url":"https://api.github.com/repos/seatedscribe/keepassxc/contributors","subscribers_url":"https://api.github.com/repos/seatedscribe/keepassxc/subscribers","subscription_url":"https://api.github.com/repos/seatedscribe/keepassxc/subscription","commits_url":"https://api.github.com/repos/seatedscribe/keepassxc/commits{/sha}","git_commits_url":"https://api.github.com/repos/seatedscribe/keepassxc/git/commits{/sha}","comments_url":"https://api.github.com/repos/seatedscribe/keepassxc/comments{/number}","issue_comment_url":"https://api.github.com/repos/seatedscribe/keepassxc/issues/comments{/number}","contents_url":"https://api.github.com/repos/seatedscribe/keepassxc/contents/{+path}","compare_url":"https://api.github.com/repos/seatedscribe/keepassxc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seatedscribe/keepassxc/merges","archive_url":"https://api.github.com/repos/seatedscribe/keepassxc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seatedscribe/keepassxc/downloads","issues_url":"https://api.github.com/repos/seatedscribe/keepassxc/issues{/number}","pulls_url":"https://api.github.com/repos/seatedscribe/keepassxc/pulls{/number}","milestones_url":"https://api.github.com/repos/seatedscribe/keepassxc/milestones{/number}","notifications_url":"https://api.github.com/repos/seatedscribe/keepassxc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seatedscribe/keepassxc/labels{/name}","releases_url":"https://api.github.com/repos/seatedscribe/keepassxc/releases{/id}","deployments_url":"https://api.github.com/repos/seatedscribe/keepassxc/deployments","created_at":"2016-11-30T13:34:36Z","updated_at":"2016-11-30T13:34:40Z","pushed_at":"2016-11-30T15:37:14Z","git_url":"git://github.com/seatedscribe/keepassxc.git","ssh_url":"git@github.com:seatedscribe/keepassxc.git","clone_url":"https://github.com/seatedscribe/keepassxc.git","svn_url":"https://github.com/seatedscribe/keepassxc","homepage":"","size":7049,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"keepassxreboot:develop","ref":"develop","sha":"791a749c2f2069115f8fd75196d30e80088fe8a4","user":{"login":"keepassxreboot","id":22534815,"avatar_url":"https://avatars.githubusercontent.com/u/22534815?v=3","gravatar_id":"","url":"https://api.github.com/users/keepassxreboot","html_url":"https://github.com/keepassxreboot","followers_url":"https://api.github.com/users/keepassxreboot/followers","following_url":"https://api.github.com/users/keepassxreboot/following{/other_user}","gists_url":"https://api.github.com/users/keepassxreboot/gists{/gist_id}","starred_url":"https://api.github.com/users/keepassxreboot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keepassxreboot/subscriptions","organizations_url":"https://api.github.com/users/keepassxreboot/orgs","repos_url":"https://api.github.com/users/keepassxreboot/repos","events_url":"https://api.github.com/users/keepassxreboot/events{/privacy}","received_events_url":"https://api.github.com/users/keepassxreboot/received_events","type":"Organization","site_admin":false},"repo":{"id":52729242,"name":"keepassxc","full_name":"keepassxreboot/keepassxc","owner":{"login":"keepassxreboot","id":22534815,"avatar_url":"https://avatars.githubusercontent.com/u/22534815?v=3","gravatar_id":"","url":"https://api.github.com/users/keepassxreboot","html_url":"https://github.com/keepassxreboot","followers_url":"https://api.github.com/users/keepassxreboot/followers","following_url":"https://api.github.com/users/keepassxreboot/following{/other_user}","gists_url":"https://api.github.com/users/keepassxreboot/gists{/gist_id}","starred_url":"https://api.github.com/users/keepassxreboot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keepassxreboot/subscriptions","organizations_url":"https://api.github.com/users/keepassxreboot/orgs","repos_url":"https://api.github.com/users/keepassxreboot/repos","events_url":"https://api.github.com/users/keepassxreboot/events{/privacy}","received_events_url":"https://api.github.com/users/keepassxreboot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/keepassxreboot/keepassxc","description":"KeePassXC is a cross platform community driven port of the windows application “Keepass Password Safe”.","fork":false,"url":"https://api.github.com/repos/keepassxreboot/keepassxc","forks_url":"https://api.github.com/repos/keepassxreboot/keepassxc/forks","keys_url":"https://api.github.com/repos/keepassxreboot/keepassxc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/keepassxreboot/keepassxc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/keepassxreboot/keepassxc/teams","hooks_url":"https://api.github.com/repos/keepassxreboot/keepassxc/hooks","issue_events_url":"https://api.github.com/repos/keepassxreboot/keepassxc/issues/events{/number}","events_url":"https://api.github.com/repos/keepassxreboot/keepassxc/events","assignees_url":"https://api.github.com/repos/keepassxreboot/keepassxc/assignees{/user}","branches_url":"https://api.github.com/repos/keepassxreboot/keepassxc/branches{/branch}","tags_url":"https://api.github.com/repos/keepassxreboot/keepassxc/tags","blobs_url":"https://api.github.com/repos/keepassxreboot/keepassxc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/keepassxreboot/keepassxc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/keepassxreboot/keepassxc/git/refs{/sha}","trees_url":"https://api.github.com/repos/keepassxreboot/keepassxc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/keepassxreboot/keepassxc/statuses/{sha}","languages_url":"https://api.github.com/repos/keepassxreboot/keepassxc/languages","stargazers_url":"https://api.github.com/repos/keepassxreboot/keepassxc/stargazers","contributors_url":"https://api.github.com/repos/keepassxreboot/keepassxc/contributors","subscribers_url":"https://api.github.com/repos/keepassxreboot/keepassxc/subscribers","subscription_url":"https://api.github.com/repos/keepassxreboot/keepassxc/subscription","commits_url":"https://api.github.com/repos/keepassxreboot/keepassxc/commits{/sha}","git_commits_url":"https://api.github.com/repos/keepassxreboot/keepassxc/git/commits{/sha}","comments_url":"https://api.github.com/repos/keepassxreboot/keepassxc/comments{/number}","issue_comment_url":"https://api.github.com/repos/keepassxreboot/keepassxc/issues/comments{/number}","contents_url":"https://api.github.com/repos/keepassxreboot/keepassxc/contents/{+path}","compare_url":"https://api.github.com/repos/keepassxreboot/keepassxc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/keepassxreboot/keepassxc/merges","archive_url":"https://api.github.com/repos/keepassxreboot/keepassxc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/keepassxreboot/keepassxc/downloads","issues_url":"https://api.github.com/repos/keepassxreboot/keepassxc/issues{/number}","pulls_url":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls{/number}","milestones_url":"https://api.github.com/repos/keepassxreboot/keepassxc/milestones{/number}","notifications_url":"https://api.github.com/repos/keepassxreboot/keepassxc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/keepassxreboot/keepassxc/labels{/name}","releases_url":"https://api.github.com/repos/keepassxreboot/keepassxc/releases{/id}","deployments_url":"https://api.github.com/repos/keepassxreboot/keepassxc/deployments","created_at":"2016-02-28T15:52:40Z","updated_at":"2016-11-30T10:32:55Z","pushed_at":"2016-11-30T15:49:48Z","git_url":"git://github.com/keepassxreboot/keepassxc.git","ssh_url":"git@github.com:keepassxreboot/keepassxc.git","clone_url":"https://github.com/keepassxreboot/keepassxc.git","svn_url":"https://github.com/keepassxreboot/keepassxc","homepage":"","size":7049,"stargazers_count":151,"watchers_count":151,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":30,"forks":20,"open_issues":30,"watchers":151,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/120"},"html":{"href":"https://github.com/keepassxreboot/keepassxc/pull/120"},"issue":{"href":"https://api.github.com/repos/keepassxreboot/keepassxc/issues/120"},"comments":{"href":"https://api.github.com/repos/keepassxreboot/keepassxc/issues/120/comments"},"review_comments":{"href":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/120/comments"},"review_comment":{"href":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/keepassxreboot/keepassxc/pulls/120/commits"},"statuses":{"href":"https://api.github.com/repos/keepassxreboot/keepassxc/statuses/30bb3123693f88c8f49ccca0a022c1b4916068fc"}},"merged":false,"mergeable":true,"mergeable_state":"unstable","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":2167,"deletions":8,"changed_files":20}}
{"actor":{"display_login":"seatedscribe"}}